/[lmdze]/trunk/Sources/phylmd/phyredem.f
ViewVC logotype

Diff of /trunk/Sources/phylmd/phyredem.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 20 by guez, Wed Oct 15 16:19:57 2008 UTC revision 21 by guez, Wed Oct 15 16:51:38 2008 UTC
# Line 19  contains Line 19  contains
19      USE dimsoil, ONLY : nsoilmx      USE dimsoil, ONLY : nsoilmx
20      USE temps, ONLY : itau_phy      USE temps, ONLY : itau_phy
21      USE netcdf95, ONLY : nf95_create, nf95_put_att, nf95_def_dim, &      USE netcdf95, ONLY : nf95_create, nf95_put_att, nf95_def_dim, &
22           nf95_def_var, nf95_enddef, nf95_redef           nf95_def_var, nf95_enddef, nf95_redef, nf95_put_var, nf95_close
23      USE netcdf, ONLY : nf90_clobber, nf90_global, nf90_float, nf90_put_var, &      USE netcdf, ONLY : nf90_clobber, nf90_global, nf90_float
          nf90_close  
24    
25      CHARACTER(len=*) fichnom      CHARACTER(len=*) fichnom
26      REAL, INTENT (IN) :: rlat(klon), rlon(klon)      REAL, INTENT (IN) :: rlat(klon), rlon(klon)
# Line 58  contains Line 57  contains
57      REAL :: run_off_lic_0(klon)      REAL :: run_off_lic_0(klon)
58    
59      INTEGER :: nid, nvarid, idim2, idim3      INTEGER :: nid, nvarid, idim2, idim3
     INTEGER :: ierr  
60    
61      INTEGER :: isoil, nsrf      INTEGER :: isoil, nsrf
62      CHARACTER (7) :: str7      CHARACTER (7) :: str7
# Line 80  contains Line 78  contains
78      call nf95_put_att(nid, nvarid, 'title', &      call nf95_put_att(nid, nvarid, 'title', &
79           'Longitudes de la grille physique')           'Longitudes de la grille physique')
80      call nf95_enddef(nid)      call nf95_enddef(nid)
81      ierr = nf90_put_var(nid, nvarid, rlon)      call nf95_put_var(nid, nvarid, rlon)
82    
83      call nf95_redef(nid)      call nf95_redef(nid)
84      call nf95_def_var(nid, 'latitude', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'latitude', nf90_float, idim2, nvarid)
85      call nf95_put_att(nid, nvarid, 'title', &      call nf95_put_att(nid, nvarid, 'title', &
86           'Latitudes de la grille physique')           'Latitudes de la grille physique')
87      call nf95_enddef(nid)      call nf95_enddef(nid)
88      ierr = nf90_put_var(nid, nvarid, rlat)      call nf95_put_var(nid, nvarid, rlat)
89    
90      ! PB ajout du masque terre/mer      ! PB ajout du masque terre/mer
91    
# Line 95  contains Line 93  contains
93      call nf95_def_var(nid, 'masque', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'masque', nf90_float, idim2, nvarid)
94      call nf95_put_att(nid, nvarid, 'title', 'masque terre mer')      call nf95_put_att(nid, nvarid, 'title', 'masque terre mer')
95      call nf95_enddef(nid)      call nf95_enddef(nid)
96      ierr = nf90_put_var(nid, nvarid, zmasq)      call nf95_put_var(nid, nvarid, zmasq)
97      ! BP ajout des fraction de chaque sous-surface      ! BP ajout des fraction de chaque sous-surface
98    
99      ! 1. fraction de terre      ! 1. fraction de terre
# Line 104  contains Line 102  contains
102      call nf95_def_var(nid, 'FTER', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'FTER', nf90_float, idim2, nvarid)
103      call nf95_put_att(nid, nvarid, 'title', 'fraction de continent')      call nf95_put_att(nid, nvarid, 'title', 'fraction de continent')
104      call nf95_enddef(nid)      call nf95_enddef(nid)
105      ierr = nf90_put_var(nid, nvarid, pctsrf(:, is_ter))      call nf95_put_var(nid, nvarid, pctsrf(:, is_ter))
106    
107      ! 2. Fraction de glace de terre      ! 2. Fraction de glace de terre
108    
# Line 112  contains Line 110  contains
110      call nf95_def_var(nid, 'FLIC', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'FLIC', nf90_float, idim2, nvarid)
111      call nf95_put_att(nid, nvarid, 'title', 'fraction glace de terre')      call nf95_put_att(nid, nvarid, 'title', 'fraction glace de terre')
112      call nf95_enddef(nid)      call nf95_enddef(nid)
113      ierr = nf90_put_var(nid, nvarid, pctsrf(:, is_lic))      call nf95_put_var(nid, nvarid, pctsrf(:, is_lic))
114    
115      ! 3. fraction ocean      ! 3. fraction ocean
116    
# Line 120  contains Line 118  contains
118      call nf95_def_var(nid, 'FOCE', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'FOCE', nf90_float, idim2, nvarid)
119      call nf95_put_att(nid, nvarid, 'title', 'fraction ocean')      call nf95_put_att(nid, nvarid, 'title', 'fraction ocean')
120      call nf95_enddef(nid)      call nf95_enddef(nid)
121      ierr = nf90_put_var(nid, nvarid, pctsrf(:, is_oce))      call nf95_put_var(nid, nvarid, pctsrf(:, is_oce))
122    
123      ! 4. Fraction glace de mer      ! 4. Fraction glace de mer
124    
# Line 128  contains Line 126  contains
126      call nf95_def_var(nid, 'FSIC', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'FSIC', nf90_float, idim2, nvarid)
127      call nf95_put_att(nid, nvarid, 'title', 'fraction glace mer')      call nf95_put_att(nid, nvarid, 'title', 'fraction glace mer')
128      call nf95_enddef(nid)      call nf95_enddef(nid)
129      ierr = nf90_put_var(nid, nvarid, pctsrf(:, is_sic))      call nf95_put_var(nid, nvarid, pctsrf(:, is_sic))
130    
131    
132    
# Line 144  contains Line 142  contains
142            PRINT *, 'Trop de sous-mailles'            PRINT *, 'Trop de sous-mailles'
143            STOP 1            STOP 1
144         END IF         END IF
145         ierr = nf90_put_var(nid, nvarid, tsol(:, nsrf))         call nf95_put_var(nid, nvarid, tsol(:, nsrf))
146      END DO      END DO
147    
148      DO nsrf = 1, nbsrf      DO nsrf = 1, nbsrf
# Line 160  contains Line 158  contains
158               PRINT *, 'Trop de couches'               PRINT *, 'Trop de couches'
159               STOP 1               STOP 1
160            END IF            END IF
161            ierr = nf90_put_var(nid, nvarid, tsoil(:, isoil, nsrf))            call nf95_put_var(nid, nvarid, tsoil(:, isoil, nsrf))
162         END DO         END DO
163      END DO      END DO
164    
# Line 170  contains Line 168  contains
168      call nf95_put_att(nid, nvarid, 'title', &      call nf95_put_att(nid, nvarid, 'title', &
169           'Ecart de la SST (pour slab-ocean)')           'Ecart de la SST (pour slab-ocean)')
170      call nf95_enddef(nid)      call nf95_enddef(nid)
171      ierr = nf90_put_var(nid, nvarid, tslab)      call nf95_put_var(nid, nvarid, tslab)
172    
173      call nf95_redef(nid)      call nf95_redef(nid)
174      call nf95_def_var(nid, 'SEAICE', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'SEAICE', nf90_float, idim2, nvarid)
175      call nf95_put_att(nid, nvarid, 'title', &      call nf95_put_att(nid, nvarid, 'title', &
176           'Glace de mer kg/m2 (pour slab-ocean)')           'Glace de mer kg/m2 (pour slab-ocean)')
177      call nf95_enddef(nid)      call nf95_enddef(nid)
178      ierr = nf90_put_var(nid, nvarid, seaice)      call nf95_put_var(nid, nvarid, seaice)
179    
180      DO nsrf = 1, nbsrf      DO nsrf = 1, nbsrf
181         IF (nsrf<=99) THEN         IF (nsrf<=99) THEN
# Line 191  contains Line 189  contains
189            PRINT *, 'Trop de sous-mailles'            PRINT *, 'Trop de sous-mailles'
190            STOP 1            STOP 1
191         END IF         END IF
192         ierr = nf90_put_var(nid, nvarid, qsurf(:, nsrf))         call nf95_put_var(nid, nvarid, qsurf(:, nsrf))
193      END DO      END DO
194    
195      call nf95_redef(nid)      call nf95_redef(nid)
196      call nf95_def_var(nid, 'QSOL', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'QSOL', nf90_float, idim2, nvarid)
197      call nf95_put_att(nid, nvarid, 'title', 'Eau dans le sol (mm)')      call nf95_put_att(nid, nvarid, 'title', 'Eau dans le sol (mm)')
198      call nf95_enddef(nid)      call nf95_enddef(nid)
199      ierr = nf90_put_var(nid, nvarid, qsol)      call nf95_put_var(nid, nvarid, qsol)
200    
201      DO nsrf = 1, nbsrf      DO nsrf = 1, nbsrf
202         IF (nsrf<=99) THEN         IF (nsrf<=99) THEN
# Line 212  contains Line 210  contains
210            PRINT *, 'Trop de sous-mailles'            PRINT *, 'Trop de sous-mailles'
211            STOP 1            STOP 1
212         END IF         END IF
213         ierr = nf90_put_var(nid, nvarid, albedo(:, nsrf))         call nf95_put_var(nid, nvarid, albedo(:, nsrf))
214      END DO      END DO
215    
216      !IM BEG albedo LW      !IM BEG albedo LW
# Line 228  contains Line 226  contains
226            PRINT *, 'Trop de sous-mailles'            PRINT *, 'Trop de sous-mailles'
227            STOP 1            STOP 1
228         END IF         END IF
229         ierr = nf90_put_var(nid, nvarid, alblw(:, nsrf))         call nf95_put_var(nid, nvarid, alblw(:, nsrf))
230      END DO      END DO
231      !IM END albedo LW      !IM END albedo LW
232    
# Line 244  contains Line 242  contains
242            PRINT *, 'Trop de sous-mailles'            PRINT *, 'Trop de sous-mailles'
243            STOP 1            STOP 1
244         END IF         END IF
245         ierr = nf90_put_var(nid, nvarid, evap(:, nsrf))         call nf95_put_var(nid, nvarid, evap(:, nsrf))
246      END DO      END DO
247    
248    
# Line 260  contains Line 258  contains
258            PRINT *, 'Trop de sous-mailles'            PRINT *, 'Trop de sous-mailles'
259            STOP 1            STOP 1
260         END IF         END IF
261         ierr = nf90_put_var(nid, nvarid, snow(:, nsrf))         call nf95_put_var(nid, nvarid, snow(:, nsrf))
262      END DO      END DO
263    
264    
# Line 269  contains Line 267  contains
267      call nf95_put_att(nid, nvarid, 'title', &      call nf95_put_att(nid, nvarid, 'title', &
268           'Rayonnement net a la surface')           'Rayonnement net a la surface')
269      call nf95_enddef(nid)      call nf95_enddef(nid)
270      ierr = nf90_put_var(nid, nvarid, radsol)      call nf95_put_var(nid, nvarid, radsol)
271    
272      call nf95_redef(nid)      call nf95_redef(nid)
273      call nf95_def_var(nid, 'solsw', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'solsw', nf90_float, idim2, nvarid)
274      call nf95_put_att(nid, nvarid, 'title', &      call nf95_put_att(nid, nvarid, 'title', &
275           'Rayonnement solaire a la surface')           'Rayonnement solaire a la surface')
276      call nf95_enddef(nid)      call nf95_enddef(nid)
277      ierr = nf90_put_var(nid, nvarid, solsw)      call nf95_put_var(nid, nvarid, solsw)
278    
279      call nf95_redef(nid)      call nf95_redef(nid)
280      call nf95_def_var(nid, 'sollw', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'sollw', nf90_float, idim2, nvarid)
281      call nf95_put_att(nid, nvarid, 'title', &      call nf95_put_att(nid, nvarid, 'title', &
282           'Rayonnement IF a la surface')           'Rayonnement IF a la surface')
283      call nf95_enddef(nid)      call nf95_enddef(nid)
284      ierr = nf90_put_var(nid, nvarid, sollw)      call nf95_put_var(nid, nvarid, sollw)
285    
286      call nf95_redef(nid)      call nf95_redef(nid)
287      call nf95_def_var(nid, 'fder', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'fder', nf90_float, idim2, nvarid)
288      call nf95_put_att(nid, nvarid, 'title', 'Derive de flux')      call nf95_put_att(nid, nvarid, 'title', 'Derive de flux')
289      call nf95_enddef(nid)      call nf95_enddef(nid)
290      ierr = nf90_put_var(nid, nvarid, fder)      call nf95_put_var(nid, nvarid, fder)
291    
292      call nf95_redef(nid)      call nf95_redef(nid)
293      call nf95_def_var(nid, 'rain_f', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'rain_f', nf90_float, idim2, nvarid)
294      call nf95_put_att(nid, nvarid, 'title', 'precipitation liquide')      call nf95_put_att(nid, nvarid, 'title', 'precipitation liquide')
295      call nf95_enddef(nid)      call nf95_enddef(nid)
296      ierr = nf90_put_var(nid, nvarid, rain_fall)      call nf95_put_var(nid, nvarid, rain_fall)
297    
298      call nf95_redef(nid)      call nf95_redef(nid)
299      call nf95_def_var(nid, 'snow_f', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'snow_f', nf90_float, idim2, nvarid)
300      call nf95_put_att(nid, nvarid, 'title', 'precipitation solide')      call nf95_put_att(nid, nvarid, 'title', 'precipitation solide')
301      call nf95_enddef(nid)      call nf95_enddef(nid)
302      ierr = nf90_put_var(nid, nvarid, snow_fall)      call nf95_put_var(nid, nvarid, snow_fall)
303    
304      DO nsrf = 1, nbsrf      DO nsrf = 1, nbsrf
305         IF (nsrf<=99) THEN         IF (nsrf<=99) THEN
# Line 315  contains Line 313  contains
313            PRINT *, 'Trop de sous-mailles'            PRINT *, 'Trop de sous-mailles'
314            STOP 1            STOP 1
315         END IF         END IF
316         ierr = nf90_put_var(nid, nvarid, frugs(:, nsrf))         call nf95_put_var(nid, nvarid, frugs(:, nsrf))
317      END DO      END DO
318    
319      DO nsrf = 1, nbsrf      DO nsrf = 1, nbsrf
# Line 330  contains Line 328  contains
328            PRINT *, 'Trop de sous-mailles'            PRINT *, 'Trop de sous-mailles'
329            STOP 1            STOP 1
330         END IF         END IF
331         ierr = nf90_put_var(nid, nvarid, agesno(:, nsrf))         call nf95_put_var(nid, nvarid, agesno(:, nsrf))
332      END DO      END DO
333    
334      call nf95_redef(nid)      call nf95_redef(nid)
335      call nf95_def_var(nid, 'ZMEA', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'ZMEA', nf90_float, idim2, nvarid)
336      call nf95_enddef(nid)      call nf95_enddef(nid)
337      ierr = nf90_put_var(nid, nvarid, zmea)      call nf95_put_var(nid, nvarid, zmea)
338    
339      call nf95_redef(nid)      call nf95_redef(nid)
340      call nf95_def_var(nid, 'ZSTD', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'ZSTD', nf90_float, idim2, nvarid)
341      call nf95_enddef(nid)      call nf95_enddef(nid)
342      ierr = nf90_put_var(nid, nvarid, zstd)      call nf95_put_var(nid, nvarid, zstd)
343      call nf95_redef(nid)      call nf95_redef(nid)
344      call nf95_def_var(nid, 'ZSIG', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'ZSIG', nf90_float, idim2, nvarid)
345      call nf95_enddef(nid)      call nf95_enddef(nid)
346      ierr = nf90_put_var(nid, nvarid, zsig)      call nf95_put_var(nid, nvarid, zsig)
347      call nf95_redef(nid)      call nf95_redef(nid)
348      call nf95_def_var(nid, 'ZGAM', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'ZGAM', nf90_float, idim2, nvarid)
349      call nf95_enddef(nid)      call nf95_enddef(nid)
350      ierr = nf90_put_var(nid, nvarid, zgam)      call nf95_put_var(nid, nvarid, zgam)
351      call nf95_redef(nid)      call nf95_redef(nid)
352      call nf95_def_var(nid, 'ZTHE', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'ZTHE', nf90_float, idim2, nvarid)
353      call nf95_enddef(nid)      call nf95_enddef(nid)
354      ierr = nf90_put_var(nid, nvarid, zthe)      call nf95_put_var(nid, nvarid, zthe)
355      call nf95_redef(nid)      call nf95_redef(nid)
356      call nf95_def_var(nid, 'ZPIC', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'ZPIC', nf90_float, idim2, nvarid)
357      call nf95_enddef(nid)      call nf95_enddef(nid)
358      ierr = nf90_put_var(nid, nvarid, zpic)      call nf95_put_var(nid, nvarid, zpic)
359      call nf95_redef(nid)      call nf95_redef(nid)
360      call nf95_def_var(nid, 'ZVAL', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'ZVAL', nf90_float, idim2, nvarid)
361      call nf95_enddef(nid)      call nf95_enddef(nid)
362      ierr = nf90_put_var(nid, nvarid, zval)      call nf95_put_var(nid, nvarid, zval)
363    
364      call nf95_redef(nid)      call nf95_redef(nid)
365      call nf95_def_var(nid, 'TANCIEN', nf90_float, idim3, nvarid)      call nf95_def_var(nid, 'TANCIEN', nf90_float, idim3, nvarid)
366      call nf95_enddef(nid)      call nf95_enddef(nid)
367      ierr = nf90_put_var(nid, nvarid, t_ancien)      call nf95_put_var(nid, nvarid, pack(t_ancien, .true.))
368    
369      call nf95_redef(nid)      call nf95_redef(nid)
370      call nf95_def_var(nid, 'QANCIEN', nf90_float, idim3, nvarid)      call nf95_def_var(nid, 'QANCIEN', nf90_float, idim3, nvarid)
371      call nf95_enddef(nid)      call nf95_enddef(nid)
372      ierr = nf90_put_var(nid, nvarid, q_ancien)      call nf95_put_var(nid, nvarid, pack(q_ancien, .true.))
373    
374      call nf95_redef(nid)      call nf95_redef(nid)
375      call nf95_def_var(nid, 'RUGMER', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'RUGMER', nf90_float, idim2, nvarid)
376      call nf95_put_att(nid, nvarid, 'title', &      call nf95_put_att(nid, nvarid, 'title', &
377           'Longueur de rugosite sur mer')           'Longueur de rugosite sur mer')
378      call nf95_enddef(nid)      call nf95_enddef(nid)
379      ierr = nf90_put_var(nid, nvarid, frugs(:, is_oce))      call nf95_put_var(nid, nvarid, frugs(:, is_oce))
380    
381      call nf95_redef(nid)      call nf95_redef(nid)
382      call nf95_def_var(nid, 'CLWCON', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'CLWCON', nf90_float, idim2, nvarid)
383      call nf95_put_att(nid, nvarid, 'title', 'Eau liquide convective')      call nf95_put_att(nid, nvarid, 'title', 'Eau liquide convective')
384      call nf95_enddef(nid)      call nf95_enddef(nid)
385      ierr = nf90_put_var(nid, nvarid, clwcon)      call nf95_put_var(nid, nvarid, clwcon)
386    
387      call nf95_redef(nid)      call nf95_redef(nid)
388      call nf95_def_var(nid, 'RNEBCON', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'RNEBCON', nf90_float, idim2, nvarid)
389      call nf95_put_att(nid, nvarid, 'title', 'Nebulosite convective')      call nf95_put_att(nid, nvarid, 'title', 'Nebulosite convective')
390      call nf95_enddef(nid)      call nf95_enddef(nid)
391      ierr = nf90_put_var(nid, nvarid, rnebcon)      call nf95_put_var(nid, nvarid, rnebcon)
392    
393      call nf95_redef(nid)      call nf95_redef(nid)
394      call nf95_def_var(nid, 'RATQS', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'RATQS', nf90_float, idim2, nvarid)
395      call nf95_put_att(nid, nvarid, 'title', 'Ratqs')      call nf95_put_att(nid, nvarid, 'title', 'Ratqs')
396      call nf95_enddef(nid)      call nf95_enddef(nid)
397      ierr = nf90_put_var(nid, nvarid, ratqs)      call nf95_put_var(nid, nvarid, ratqs)
398    
399      ! run_off_lic_0      ! run_off_lic_0
400    
# Line 404  contains Line 402  contains
402      call nf95_def_var(nid, 'RUNOFFLIC0', nf90_float, idim2, nvarid)      call nf95_def_var(nid, 'RUNOFFLIC0', nf90_float, idim2, nvarid)
403      call nf95_put_att(nid, nvarid, 'title', 'Runofflic0')      call nf95_put_att(nid, nvarid, 'title', 'Runofflic0')
404      call nf95_enddef(nid)      call nf95_enddef(nid)
405      ierr = nf90_put_var(nid, nvarid, run_off_lic_0)      call nf95_put_var(nid, nvarid, run_off_lic_0)
406    
407    
408      ierr = nf90_close(nid)      call nf95_close(nid)
409    
410    END SUBROUTINE phyredem    END SUBROUTINE phyredem
411    

Legend:
Removed from v.20  
changed lines
  Added in v.21

  ViewVC Help
Powered by ViewVC 1.1.21