/[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 155 by guez, Wed Jul 8 17:03:45 2015 UTC revision 156 by guez, Thu Jul 16 17:39:10 2015 UTC
# Line 21  contains Line 21  contains
21      USE indicesol, ONLY: is_lic, is_oce, is_sic, is_ter, nbsrf      USE indicesol, ONLY: is_lic, is_oce, is_sic, is_ter, nbsrf
22      USE netcdf, ONLY: nf90_clobber, nf90_global, nf90_float      USE netcdf, ONLY: nf90_clobber, nf90_global, nf90_float
23      USE netcdf95, ONLY: nf95_create, nf95_put_att, nf95_def_dim, &      USE netcdf95, ONLY: nf95_create, nf95_put_att, nf95_def_dim, &
24           nf95_def_var, nf95_enddef, nf95_redef, nf95_put_var, nf95_close           nf95_def_var, nf95_enddef, nf95_put_var, nf95_close
25      use phyetat0_m, only: rlat, rlon      use phyetat0_m, only: rlat, rlon
26      USE temps, ONLY: itau_phy      USE temps, ONLY: itau_phy
27    
# Line 67  contains Line 67  contains
67      INTEGER ncid, idim2, idim3, dimid_nbsrf, dimid_nsoilmx      INTEGER ncid, idim2, idim3, dimid_nbsrf, dimid_nsoilmx
68      integer varid, varid_run_off_lic_0, varid_sig1, varid_w01, varid_rlon      integer varid, varid_run_off_lic_0, varid_sig1, varid_w01, varid_rlon
69      integer varid_rlat, varid_zmasq, varid_fter, varid_flic, varid_foce      integer varid_rlat, varid_zmasq, varid_fter, varid_flic, varid_foce
70      integer varid_fsic, varid_ts, varid_tsoil      integer varid_fsic, varid_ts, varid_tsoil, varid_tslab, varid_SEAICE
71      INTEGER nsrf      integer varid_qs, varid_QSOL, varid_albe, varid_evap, varid_snow
72      CHARACTER(len=2) str2      integer varid_rads, varid_solsw, varid_sollw, varid_fder, varid_rain_f
73        integer varid_snow_f, varid_rug, varid_agesno, varid_zmea, varid_zstd
74        integer varid_zsig, varid_zgam, varid_zthe, varid_zpic, varid_zval
75        integer varid_tancien, varid_qancien, varid_rugmer, varid_clwcon
76        integer varid_rnebcon, varid_ratqs
77    
78      !------------------------------------------------------------      !------------------------------------------------------------
79    
# Line 112  contains Line 116  contains
116           dimid_nbsrf/), varid_tsoil)           dimid_nbsrf/), varid_tsoil)
117      call nf95_put_att(ncid, varid_tsoil, 'title', 'soil temperature')      call nf95_put_att(ncid, varid_tsoil, 'title', 'soil temperature')
118    
119      call nf95_enddef(ncid)      call nf95_def_var(ncid, 'TSLAB', nf90_float, idim2, varid_tslab)
120        call nf95_put_att(ncid, varid_tslab, 'title', &
     call nf95_put_var(ncid, varid_rlon, rlon)  
     call nf95_put_var(ncid, varid_rlat, rlat)  
     call nf95_put_var(ncid, varid_zmasq, zmasq)  
     call nf95_put_var(ncid, varid_fter, pctsrf(:, is_ter))  
     call nf95_put_var(ncid, varid_flic, pctsrf(:, is_lic))  
     call nf95_put_var(ncid, varid_foce, pctsrf(:, is_oce))  
     call nf95_put_var(ncid, varid_fsic, pctsrf(:, is_sic))  
     call nf95_put_var(ncid, varid_ts, tsol)  
     call nf95_put_var(ncid, varid_tsoil, tsoil)  
   
     !IM "slab" ocean  
     call nf95_redef(ncid)  
     call nf95_def_var(ncid, 'TSLAB', nf90_float, idim2, varid)  
     call nf95_put_att(ncid, varid, 'title', &  
121           'Ecart de la SST (pour slab-ocean)')           'Ecart de la SST (pour slab-ocean)')
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, tslab)  
122    
123      call nf95_redef(ncid)      call nf95_def_var(ncid, 'SEAICE', nf90_float, idim2, varid_SEAICE)
124      call nf95_def_var(ncid, 'SEAICE', nf90_float, idim2, varid)      call nf95_put_att(ncid, varid_SEAICE, 'title', &
     call nf95_put_att(ncid, varid, 'title', &  
125           'Glace de mer kg/m2 (pour slab-ocean)')           'Glace de mer kg/m2 (pour slab-ocean)')
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, seaice)  
126    
127      DO nsrf = 1, nbsrf      call nf95_def_var(ncid, 'QS', nf90_float, (/idim2, dimid_nbsrf/), varid_qs)
128         IF (nsrf<=99) THEN      call nf95_put_att(ncid, varid, 'title', 'Humidite de surface')
129            WRITE (str2, '(i2.2)') nsrf  
130            call nf95_redef(ncid)      call nf95_def_var(ncid, 'QSOL', nf90_float, idim2, varid_QSOL)
131            call nf95_def_var(ncid, 'QS'//str2, nf90_float, idim2, varid)      call nf95_put_att(ncid, varid_QSOL, 'title', 'Eau dans le sol (mm)')
           call nf95_put_att(ncid, varid, 'title', &  
                'Humidite de surface No.'//str2)  
           call nf95_enddef(ncid)  
        ELSE  
           PRINT *, 'Trop de sous-mailles'  
           STOP 1  
        END IF  
        call nf95_put_var(ncid, varid, qsurf(:, nsrf))  
     END DO  
   
     call nf95_redef(ncid)  
     call nf95_def_var(ncid, 'QSOL', nf90_float, idim2, varid)  
     call nf95_put_att(ncid, varid, 'title', 'Eau dans le sol (mm)')  
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, qsol)  
132    
133      DO nsrf = 1, nbsrf      call nf95_def_var(ncid, 'ALBE', nf90_float, (/idim2, dimid_nbsrf/), &
134         IF (nsrf<=99) THEN           varid_albe)
135            WRITE (str2, '(i2.2)') nsrf      call nf95_put_att(ncid, varid_albe, 'title', 'albedo de surface')
136            call nf95_redef(ncid)  
137            call nf95_def_var(ncid, 'ALBE'//str2, nf90_float, idim2, varid)      call nf95_def_var(ncid, 'EVAP', nf90_float, (/idim2, dimid_nbsrf/), &
138            call nf95_put_att(ncid, varid, 'title', &           varid_evap)
139                 'albedo de surface No.'//str2)      call nf95_put_att(ncid, varid_evap, 'title', 'Evaporation de surface')
140            call nf95_enddef(ncid)  
141         ELSE      call nf95_def_var(ncid, 'SNOW', nf90_float, (/idim2, dimid_nbsrf/), &
142            PRINT *, 'Trop de sous-mailles'           varid_snow)
143            STOP 1      call nf95_put_att(ncid, varid_snow, 'title', 'Neige de surface')
144         END IF  
145         call nf95_put_var(ncid, varid, albedo(:, nsrf))      call nf95_def_var(ncid, 'RADS', nf90_float, idim2, varid_rads)
146      END DO      call nf95_put_att(ncid, varid_rads, 'title', &
   
     DO nsrf = 1, nbsrf  
        IF (nsrf<=99) THEN  
           WRITE (str2, '(i2.2)') nsrf  
           call nf95_redef(ncid)  
           call nf95_def_var(ncid, 'EVAP'//str2, nf90_float, idim2, varid)  
           call nf95_put_att(ncid, varid, 'title', &  
                'Evaporation de surface No.'//str2)  
           call nf95_enddef(ncid)  
        ELSE  
           PRINT *, 'Trop de sous-mailles'  
           STOP 1  
        END IF  
        call nf95_put_var(ncid, varid, evap(:, nsrf))  
     END DO  
   
     DO nsrf = 1, nbsrf  
        IF (nsrf<=99) THEN  
           WRITE (str2, '(i2.2)') nsrf  
           call nf95_redef(ncid)  
           call nf95_def_var(ncid, 'SNOW'//str2, nf90_float, idim2, varid)  
           call nf95_put_att(ncid, varid, 'title', &  
                'Neige de surface No.'//str2)  
           call nf95_enddef(ncid)  
        ELSE  
           PRINT *, 'Trop de sous-mailles'  
           STOP 1  
        END IF  
        call nf95_put_var(ncid, varid, snow(:, nsrf))  
     END DO  
   
     call nf95_redef(ncid)  
     call nf95_def_var(ncid, 'RADS', nf90_float, idim2, varid)  
     call nf95_put_att(ncid, varid, 'title', &  
147           'Rayonnement net a la surface')           'Rayonnement net a la surface')
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, radsol)  
148    
149      call nf95_redef(ncid)      call nf95_def_var(ncid, 'solsw', nf90_float, idim2, varid_solsw)
150      call nf95_def_var(ncid, 'solsw', nf90_float, idim2, varid)      call nf95_put_att(ncid, varid_solsw, 'title', &
     call nf95_put_att(ncid, varid, 'title', &  
151           'Rayonnement solaire a la surface')           'Rayonnement solaire a la surface')
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, solsw)  
152    
153      call nf95_redef(ncid)      call nf95_def_var(ncid, 'sollw', nf90_float, idim2, varid_sollw)
154      call nf95_def_var(ncid, 'sollw', nf90_float, idim2, varid)      call nf95_put_att(ncid, varid_sollw, 'title', &
     call nf95_put_att(ncid, varid, 'title', &  
155           'Rayonnement IF a la surface')           'Rayonnement IF a la surface')
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, sollw)  
   
     call nf95_redef(ncid)  
     call nf95_def_var(ncid, 'fder', nf90_float, idim2, varid)  
     call nf95_put_att(ncid, varid, 'title', 'Derive de flux')  
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, fder)  
156    
157      call nf95_redef(ncid)      call nf95_def_var(ncid, 'fder', nf90_float, idim2, varid_fder)
158      call nf95_def_var(ncid, 'rain_f', nf90_float, idim2, varid)      call nf95_put_att(ncid, varid_fder, 'title', 'Derive de flux')
     call nf95_put_att(ncid, varid, 'title', 'precipitation liquide')  
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, rain_fall)  
159    
160      call nf95_redef(ncid)      call nf95_def_var(ncid, 'rain_f', nf90_float, idim2, varid_rain_f)
161      call nf95_def_var(ncid, 'snow_f', nf90_float, idim2, varid)      call nf95_put_att(ncid, varid_rain_f, 'title', 'precipitation liquide')
     call nf95_put_att(ncid, varid, 'title', 'precipitation solide')  
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, snow_fall)  
162    
163      DO nsrf = 1, nbsrf      call nf95_def_var(ncid, 'snow_f', nf90_float, idim2, varid_snow_f)
164         IF (nsrf<=99) THEN      call nf95_put_att(ncid, varid_snow_f, 'title', 'precipitation solide')
           WRITE (str2, '(i2.2)') nsrf  
           call nf95_redef(ncid)  
           call nf95_def_var(ncid, 'RUG'//str2, nf90_float, idim2, varid)  
           call nf95_put_att(ncid, varid, 'title', &  
                'rugosite de surface No.'//str2)  
           call nf95_enddef(ncid)  
        ELSE  
           PRINT *, 'Trop de sous-mailles'  
           STOP 1  
        END IF  
        call nf95_put_var(ncid, varid, frugs(:, nsrf))  
     END DO  
   
     DO nsrf = 1, nbsrf  
        IF (nsrf<=99) THEN  
           WRITE (str2, '(i2.2)') nsrf  
           call nf95_redef(ncid)  
           call nf95_def_var(ncid, 'AGESNO'//str2, nf90_float, idim2, varid)  
           call nf95_put_att(ncid, varid, 'title', &  
                'Age de la neige surface No.'//str2)  
           call nf95_enddef(ncid)  
        ELSE  
           PRINT *, 'Trop de sous-mailles'  
           STOP 1  
        END IF  
        call nf95_put_var(ncid, varid, agesno(:, nsrf))  
     END DO  
165    
166      call nf95_redef(ncid)      call nf95_def_var(ncid, 'RUG', nf90_float, (/idim2, dimid_nbsrf/), &
167      call nf95_def_var(ncid, 'ZMEA', nf90_float, idim2, varid)           varid_rug)
168      call nf95_enddef(ncid)      call nf95_put_att(ncid, varid_rug, 'title', 'rugosite de surface')
169      call nf95_put_var(ncid, varid, zmea)  
170        call nf95_def_var(ncid, 'AGESNO', nf90_float, (/idim2, dimid_nbsrf/), &
171             varid_agesno)
172        call nf95_put_att(ncid, varid_agesno, 'title', 'Age de la neige surface')
173    
174        call nf95_def_var(ncid, 'ZMEA', nf90_float, idim2, varid_zmea)
175        call nf95_def_var(ncid, 'ZSTD', nf90_float, idim2, varid_zstd)
176        call nf95_def_var(ncid, 'ZSIG', nf90_float, idim2, varid_zsig)
177        call nf95_def_var(ncid, 'ZGAM', nf90_float, idim2, varid_zgam)
178        call nf95_def_var(ncid, 'ZTHE', nf90_float, idim2, varid_zthe)
179        call nf95_def_var(ncid, 'ZPIC', nf90_float, idim2, varid_zpic)
180        call nf95_def_var(ncid, 'ZVAL', nf90_float, idim2, varid_zval)
181        call nf95_def_var(ncid, 'TANCIEN', nf90_float, (/idim2, idim3/), &
182             varid_tancien)
183        call nf95_def_var(ncid, 'QANCIEN', nf90_float, (/idim2, idim3/), &
184             varid_qancien)
185    
186      call nf95_redef(ncid)      call nf95_def_var(ncid, 'RUGMER', nf90_float, idim2, varid_rugmer)
187      call nf95_def_var(ncid, 'ZSTD', nf90_float, idim2, varid)      call nf95_put_att(ncid, varid_rugmer, 'title', &
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, zstd)  
     call nf95_redef(ncid)  
     call nf95_def_var(ncid, 'ZSIG', nf90_float, idim2, varid)  
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, zsig)  
     call nf95_redef(ncid)  
     call nf95_def_var(ncid, 'ZGAM', nf90_float, idim2, varid)  
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, zgam)  
     call nf95_redef(ncid)  
     call nf95_def_var(ncid, 'ZTHE', nf90_float, idim2, varid)  
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, zthe)  
     call nf95_redef(ncid)  
     call nf95_def_var(ncid, 'ZPIC', nf90_float, idim2, varid)  
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, zpic)  
     call nf95_redef(ncid)  
     call nf95_def_var(ncid, 'ZVAL', nf90_float, idim2, varid)  
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, zval)  
   
     call nf95_redef(ncid)  
     call nf95_def_var(ncid, 'TANCIEN', nf90_float, (/idim2, idim3/), varid)  
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, t_ancien)  
   
     call nf95_redef(ncid)  
     call nf95_def_var(ncid, 'QANCIEN', nf90_float, (/idim2, idim3/), varid)  
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, q_ancien)  
   
     call nf95_redef(ncid)  
     call nf95_def_var(ncid, 'RUGMER', nf90_float, idim2, varid)  
     call nf95_put_att(ncid, varid, 'title', &  
188           'Longueur de rugosite sur mer')           'Longueur de rugosite sur mer')
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, frugs(:, is_oce))  
189    
190      call nf95_redef(ncid)      call nf95_def_var(ncid, 'CLWCON', nf90_float, idim2, varid_clwcon)
191      call nf95_def_var(ncid, 'CLWCON', nf90_float, idim2, varid)      call nf95_put_att(ncid, varid_clwcon, 'title', 'Eau liquide convective')
     call nf95_put_att(ncid, varid, 'title', 'Eau liquide convective')  
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, clwcon(:, 1))  
192    
193      call nf95_redef(ncid)      call nf95_def_var(ncid, 'RNEBCON', nf90_float, idim2, varid_rnebcon)
194      call nf95_def_var(ncid, 'RNEBCON', nf90_float, idim2, varid)      call nf95_put_att(ncid, varid_rnebcon, 'title', 'Nebulosite convective')
     call nf95_put_att(ncid, varid, 'title', 'Nebulosite convective')  
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, rnebcon(:, 1))  
195    
196      call nf95_redef(ncid)      call nf95_def_var(ncid, 'RATQS', nf90_float, idim2, varid_ratqs)
197      call nf95_def_var(ncid, 'RATQS', nf90_float, idim2, varid)      call nf95_put_att(ncid, varid_ratqs, 'title', 'Ratqs')
     call nf95_put_att(ncid, varid, 'title', 'Ratqs')  
     call nf95_enddef(ncid)  
     call nf95_put_var(ncid, varid, ratqs(:, 1))  
198    
     call nf95_redef(ncid)  
199      call nf95_def_var(ncid, 'RUNOFFLIC0', nf90_float, idim2, &      call nf95_def_var(ncid, 'RUNOFFLIC0', nf90_float, idim2, &
200           varid_run_off_lic_0)           varid_run_off_lic_0)
201      call nf95_put_att(ncid, varid_run_off_lic_0, 'title', 'Runofflic0')      call nf95_put_att(ncid, varid_run_off_lic_0, 'title', 'Runofflic0')
# Line 354  contains Line 210  contains
210    
211      call nf95_enddef(ncid)      call nf95_enddef(ncid)
212    
213        call nf95_put_var(ncid, varid_rlon, rlon)
214        call nf95_put_var(ncid, varid_rlat, rlat)
215        call nf95_put_var(ncid, varid_zmasq, zmasq)
216        call nf95_put_var(ncid, varid_fter, pctsrf(:, is_ter))
217        call nf95_put_var(ncid, varid_flic, pctsrf(:, is_lic))
218        call nf95_put_var(ncid, varid_foce, pctsrf(:, is_oce))
219        call nf95_put_var(ncid, varid_fsic, pctsrf(:, is_sic))
220        call nf95_put_var(ncid, varid_ts, tsol)
221        call nf95_put_var(ncid, varid_tsoil, tsoil)
222        call nf95_put_var(ncid, varid_tslab, tslab)
223        call nf95_put_var(ncid, varid_SEAICE, seaice)
224        call nf95_put_var(ncid, varid_qs, qsurf)
225        call nf95_put_var(ncid, varid_QSOL, qsol)
226        call nf95_put_var(ncid, varid_albe, albedo)
227        call nf95_put_var(ncid, varid_evap, evap)
228        call nf95_put_var(ncid, varid_snow, snow)
229        call nf95_put_var(ncid, varid_rads, radsol)
230        call nf95_put_var(ncid, varid_solsw, solsw)
231        call nf95_put_var(ncid, varid_sollw, sollw)
232        call nf95_put_var(ncid, varid_fder, fder)
233        call nf95_put_var(ncid, varid_rain_f, rain_fall)
234        call nf95_put_var(ncid, varid_snow_f, snow_fall)
235        call nf95_put_var(ncid, varid_rug, frugs)
236        call nf95_put_var(ncid, varid_agesno, agesno)
237        call nf95_put_var(ncid, varid_zmea, zmea)
238        call nf95_put_var(ncid, varid_zstd, zstd)
239        call nf95_put_var(ncid, varid_zsig, zsig)
240        call nf95_put_var(ncid, varid_zgam, zgam)
241        call nf95_put_var(ncid, varid_zthe, zthe)
242        call nf95_put_var(ncid, varid_zpic, zpic)
243        call nf95_put_var(ncid, varid_zval, zval)
244        call nf95_put_var(ncid, varid_tancien, t_ancien)
245        call nf95_put_var(ncid, varid_qancien, q_ancien)
246        call nf95_put_var(ncid, varid_rugmer, frugs(:, is_oce))
247        call nf95_put_var(ncid, varid_clwcon, clwcon(:, 1))
248        call nf95_put_var(ncid, varid_rnebcon, rnebcon(:, 1))
249        call nf95_put_var(ncid, varid_ratqs, ratqs(:, 1))
250      call nf95_put_var(ncid, varid_run_off_lic_0, run_off_lic_0)      call nf95_put_var(ncid, varid_run_off_lic_0, run_off_lic_0)
251      call nf95_put_var(ncid, varid_sig1, sig1)      call nf95_put_var(ncid, varid_sig1, sig1)
252      call nf95_put_var(ncid, varid_w01, w01)      call nf95_put_var(ncid, varid_w01, w01)

Legend:
Removed from v.155  
changed lines
  Added in v.156

  ViewVC Help
Powered by ViewVC 1.1.21