/[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

trunk/libf/phylmd/phyredem.f90 revision 19 by guez, Thu Aug 7 15:46:20 2008 UTC trunk/Sources/phylmd/phyredem.f revision 140 by guez, Fri Jun 5 18:58:06 2015 UTC
# Line 4  module phyredem_m Line 4  module phyredem_m
4    
5  contains  contains
6    
7    SUBROUTINE phyredem(fichnom, rlat, rlon, pctsrf, tsol, tsoil, tslab, &    SUBROUTINE phyredem(fichnom, pctsrf, tsol, tsoil, tslab, seaice, qsurf, &
8         seaice, qsurf, qsol, snow, albedo, alblw, evap, rain_fall,&         qsol, snow, albedo, alblw, evap, rain_fall, snow_fall, solsw, sollw, &
9         snow_fall, solsw, sollw, fder, radsol, frugs, agesno, zmea,&         fder, radsol, frugs, agesno, zmea, zstd, zsig, zgam, zthe, zpic, zval, &
10         zstd, zsig, zgam, zthe, zpic, zval, t_ancien, q_ancien,&         t_ancien, q_ancien, rnebcon, ratqs, clwcon, run_off_lic_0, sig1, w01)
11         rnebcon, ratqs, clwcon, run_off_lic_0)  
12        ! From phylmd/phyredem.F, version 1.3, 2005/05/25 13:10:09
13      ! From phylmd/phyredem.F, v 1.3 2005/05/25 13:10:09      ! Author: Z. X. Li (LMD/CNRS)
14      ! Auteur(s) Z.X. Li (LMD/CNRS) date: 19930818      ! Date: 1993/08/18
15      ! Objet: Ecriture de l'etat de démarrage ou redémarrage pour la physique  
16        ! Objet : \'ecriture de l'\'etat de d\'emarrage ou red\'emarrage
17      USE indicesol, ONLY : is_lic, is_oce, is_sic, is_ter, nbsrf      ! pour la physique
18      USE dimphy, ONLY : klev, klon, zmasq  
19      USE dimsoil, ONLY : nsoilmx      USE dimphy, ONLY: klev, klon, zmasq
20      USE temps, ONLY : itau_phy      USE dimsoil, ONLY: nsoilmx
21      USE netcdf95, ONLY : nf95_create, nf95_put_att      USE indicesol, ONLY: is_lic, is_oce, is_sic, is_ter, nbsrf
22      USE netcdf, ONLY : nf90_clobber, nf90_global      USE netcdf, ONLY: nf90_clobber, nf90_global, nf90_float
23        USE netcdf95, ONLY: nf95_create, nf95_put_att, nf95_def_dim, &
24      INCLUDE 'netcdf.inc'           nf95_def_var, nf95_enddef, nf95_redef, nf95_put_var, nf95_close
25        use phyetat0_m, only: rlat, rlon
26      CHARACTER(len=*) fichnom      USE temps, ONLY: itau_phy
27      REAL, INTENT (IN) :: rlat(klon), rlon(klon)  
28      REAL :: tsol(klon, nbsrf)      CHARACTER(len=*), INTENT(IN):: fichnom
29      REAL :: tsoil(klon, nsoilmx, nbsrf)      REAL, INTENT(IN):: pctsrf(:, :) ! (klon, nbsrf)
30        REAL, INTENT(IN):: tsol(:, :) ! (klon, nbsrf)
31      REAL :: tslab(klon), seaice(klon) !IM "slab" ocean      REAL, INTENT(IN):: tsoil(:, :, :) ! (klon, nsoilmx, nbsrf)
32      REAL :: qsurf(klon, nbsrf)      REAL, INTENT(IN):: tslab(:), seaice(:) ! (klon) slab ocean
33      REAL :: qsol(klon)      REAL, INTENT(IN):: qsurf(:, :) ! (klon, nbsrf)
34      REAL :: snow(klon, nbsrf)  
35      REAL :: albedo(klon, nbsrf)      REAL, intent(in):: qsol(:) ! (klon)
36        ! column-density of water in soil, in kg m-2
37      REAL :: alblw(klon, nbsrf)  
38        REAL, INTENT(IN):: snow(klon, nbsrf)
39      REAL :: evap(klon, nbsrf)      REAL, INTENT(IN):: albedo(klon, nbsrf)
40      REAL :: rain_fall(klon)      REAL, INTENT(IN):: alblw(klon, nbsrf)
41      REAL :: snow_fall(klon)      REAL, INTENT(IN):: evap(klon, nbsrf)
42      REAL :: solsw(klon)      REAL, INTENT(IN):: rain_fall(klon)
43      REAL :: sollw(klon)      REAL, INTENT(IN):: snow_fall(klon)
44      REAL :: fder(klon)      REAL, INTENT(IN):: solsw(klon)
45      REAL :: radsol(klon)      REAL, INTENT(IN):: sollw(klon)
46      REAL :: frugs(klon, nbsrf)      REAL, INTENT(IN):: fder(klon)
47      REAL :: agesno(klon, nbsrf)      REAL, INTENT(IN):: radsol(klon)
48      REAL :: zmea(klon)      REAL, INTENT(IN):: frugs(klon, nbsrf)
49        REAL, INTENT(IN):: agesno(klon, nbsrf)
50        REAL, INTENT(IN):: zmea(klon)
51      REAL, intent(in):: zstd(klon)      REAL, intent(in):: zstd(klon)
52      REAL, intent(in):: zsig(klon)      REAL, intent(in):: zsig(klon)
53      REAL :: zgam(klon)      REAL, intent(in):: zgam(klon)
54      REAL :: zthe(klon)      REAL, intent(in):: zthe(klon)
55      REAL :: zpic(klon)      REAL, intent(in):: zpic(klon)
56      REAL :: zval(klon)      REAL, intent(in):: zval(klon)
57      REAL :: pctsrf(klon, nbsrf)      REAL, intent(in):: t_ancien(klon, klev), q_ancien(klon, klev)
58      REAL :: t_ancien(klon, klev), q_ancien(klon, klev)      REAL, intent(in):: rnebcon(klon, klev), ratqs(klon, klev)
59      REAL :: clwcon(klon, klev), rnebcon(klon, klev), ratqs(klon, klev)      REAL, intent(in):: clwcon(klon, klev)
60      REAL :: run_off_lic_0(klon)      REAL, intent(in):: run_off_lic_0(klon)
61        real, intent(in):: sig1(klon, klev) ! section adiabatic updraft
62      INTEGER :: nid, nvarid, idim2, idim3  
63      INTEGER :: ierr      real, intent(in):: w01(klon, klev)
64        ! vertical velocity within adiabatic updraft
65      INTEGER :: isoil, nsrf  
66      CHARACTER (7) :: str7      ! Local:
67      CHARACTER (2) :: str2  
68        INTEGER ncid, idim2, idim3, dimid_nbsrf, dimid_nsoilmx
69        integer varid, varid_run_off_lic_0, varid_sig1, varid_w01, varid_rlon
70        integer varid_rlat, varid_zmasq, varid_fter, varid_flic, varid_foce
71        integer varid_fsic, varid_ts, varid_tsoil
72        INTEGER nsrf
73        CHARACTER(len=2) str2
74    
75      !------------------------------------------------------------      !------------------------------------------------------------
76    
77      PRINT *, 'Call sequence information: phyredem'      PRINT *, 'Call sequence information: phyredem'
78      CALL nf95_create(fichnom, nf90_clobber, nid)      CALL nf95_create(fichnom, nf90_clobber, ncid)
79    
80      call nf95_put_att(nid, nf90_global, 'title', &      call nf95_put_att(ncid, nf90_global, 'title', &
81           'Fichier redémarrage physique')           'start file for the physics code')
82      call nf95_put_att(nid, nf90_global, "itau_phy", itau_phy)      call nf95_put_att(ncid, nf90_global, "itau_phy", itau_phy)
   
     ierr = nf_def_dim(nid, 'points_physiques', klon, idim2)  
     ierr = nf_def_dim(nid, 'horizon_vertical', klon*klev, idim3)  
   
     ierr = nf_def_var(nid, 'longitude', nf_float, 1, idim2, nvarid)  
     ierr = nf_put_att_text(nid, nvarid, 'title', 32, &  
          'Longitudes de la grille physique')  
     ierr = nf_enddef(nid)  
     ierr = nf_put_var_real(nid, nvarid, rlon)  
   
     ierr = nf_redef(nid)  
     ierr = nf_def_var(nid, 'latitude', nf_float, 1, idim2, nvarid)  
     ierr = nf_put_att_text(nid, nvarid, 'title', 31, &  
          'Latitudes de la grille physique')  
     ierr = nf_enddef(nid)  
     ierr = nf_put_var_real(nid, nvarid, rlat)  
   
     ! PB ajout du masque terre/mer  
   
     ierr = nf_redef(nid)  
     ierr = nf_def_var(nid, 'masque', nf_float, 1, idim2, nvarid)  
     ierr = nf_put_att_text(nid, nvarid, 'title', 16, 'masque terre mer')  
     ierr = nf_enddef(nid)  
     ierr = nf_put_var_real(nid, nvarid, zmasq)  
     ! BP ajout des fraction de chaque sous-surface  
   
     ! 1. fraction de terre  
   
     ierr = nf_redef(nid)  
     ierr = nf_def_var(nid, 'FTER', nf_float, 1, idim2, nvarid)  
     ierr = nf_put_att_text(nid, nvarid, 'title', 21, 'fraction de continent')  
     ierr = nf_enddef(nid)  
     ierr = nf_put_var_real(nid, nvarid, pctsrf(1:klon, is_ter))  
   
     ! 2. Fraction de glace de terre  
   
     ierr = nf_redef(nid)  
     ierr = nf_def_var(nid, 'FLIC', nf_float, 1, idim2, nvarid)  
     ierr = nf_put_att_text(nid, nvarid, 'title', 24, 'fraction glace de terre')  
     ierr = nf_enddef(nid)  
     ierr = nf_put_var_real(nid, nvarid, pctsrf(1:klon, is_lic))  
   
     ! 3. fraction ocean  
   
     ierr = nf_redef(nid)  
     ierr = nf_def_var(nid, 'FOCE', nf_float, 1, idim2, nvarid)  
     ierr = nf_put_att_text(nid, nvarid, 'title', 14, 'fraction ocean')  
     ierr = nf_enddef(nid)  
     ierr = nf_put_var_real(nid, nvarid, pctsrf(1:klon, is_oce))  
   
     ! 4. Fraction glace de mer  
   
     ierr = nf_redef(nid)  
     ierr = nf_def_var(nid, 'FSIC', nf_float, 1, idim2, nvarid)  
     ierr = nf_put_att_text(nid, nvarid, 'title', 18, 'fraction glace mer')  
     ierr = nf_enddef(nid)  
     ierr = nf_put_var_real(nid, nvarid, pctsrf(1:klon, is_sic))  
83    
84        call nf95_def_dim(ncid, 'points_physiques', klon, idim2)
85        call nf95_def_dim(ncid, 'klev', klev, idim3)
86        call nf95_def_dim(ncid, 'nbsrf', nbsrf, dimid_nbsrf)
87        call nf95_def_dim(ncid, 'nsoilmx', nsoilmx, dimid_nsoilmx)
88    
89        call nf95_def_var(ncid, 'longitude', nf90_float, idim2, varid_rlon)
90        call nf95_def_var(ncid, 'latitude', nf90_float, idim2, varid_rlat)
91    
92      DO nsrf = 1, nbsrf      call nf95_def_var(ncid, 'masque', nf90_float, idim2, varid_zmasq)
93         IF (nsrf<=99) THEN      call nf95_put_att(ncid, varid_zmasq, 'title', 'masque terre mer')
           WRITE (str2, '(i2.2)') nsrf  
           ierr = nf_redef(nid)  
           ierr = nf_def_var(nid, 'TS'//str2, nf_float, 1, idim2, nvarid)  
           ierr = nf_put_att_text(nid, nvarid, 'title', 28, &  
                'Temperature de surface No.'//str2)  
           ierr = nf_enddef(nid)  
        ELSE  
           PRINT *, 'Trop de sous-mailles'  
           STOP 1  
        END IF  
        ierr = nf_put_var_real(nid, nvarid, tsol(1, nsrf))  
     END DO  
94    
95      DO nsrf = 1, nbsrf      ! Fractions de chaque sous-surface
96         DO isoil = 1, nsoilmx  
97            IF (isoil<=99 .AND. nsrf<=99) THEN      call nf95_def_var(ncid, 'FTER', nf90_float, idim2, varid_fter)
98               WRITE (str7, '(i2.2, "srf", i2.2)') isoil, nsrf      call nf95_put_att(ncid, varid_fter, 'title', 'fraction de continent')
99               ierr = nf_redef(nid)  
100               ierr = nf_def_var(nid, 'Tsoil'//str7, nf_float, 1, idim2, nvarid)      call nf95_def_var(ncid, 'FLIC', nf90_float, idim2, varid_flic)
101               ierr = nf_put_att_text(nid, nvarid, 'title', 29, &      call nf95_put_att(ncid, varid_flic, 'title', 'fraction glace de terre')
102                    'Temperature du sol No.'//str7)  
103               ierr = nf_enddef(nid)      call nf95_def_var(ncid, 'FOCE', nf90_float, idim2, varid_foce)
104            ELSE      call nf95_put_att(ncid, varid_foce, 'title', 'fraction ocean')
105               PRINT *, 'Trop de couches'  
106               STOP 1      call nf95_def_var(ncid, 'FSIC', nf90_float, idim2, varid_fsic)
107            END IF      call nf95_put_att(ncid, varid_fsic, 'title', 'fraction glace mer')
108            ierr = nf_put_var_real(nid, nvarid, tsoil(1, isoil, nsrf))  
109         END DO      call nf95_def_var(ncid, 'TS', nf90_float, (/idim2, dimid_nbsrf/), varid_ts)
110      END DO      call nf95_put_att(ncid, varid_ts, 'title', 'surface temperature')
111    
112        call nf95_def_var(ncid, 'Tsoil', nf90_float, (/idim2, dimid_nsoilmx, &
113             dimid_nbsrf/), varid_tsoil)
114        call nf95_put_att(ncid, varid_tsoil, 'title', 'soil temperature')
115    
116        call nf95_enddef(ncid)
117    
118        call nf95_put_var(ncid, varid_rlon, rlon)
119        call nf95_put_var(ncid, varid_rlat, rlat)
120        call nf95_put_var(ncid, varid_zmasq, zmasq)
121        call nf95_put_var(ncid, varid_fter, pctsrf(:, is_ter))
122        call nf95_put_var(ncid, varid_flic, pctsrf(:, is_lic))
123        call nf95_put_var(ncid, varid_foce, pctsrf(:, is_oce))
124        call nf95_put_var(ncid, varid_fsic, pctsrf(:, is_sic))
125        call nf95_put_var(ncid, varid_ts, tsol)
126        call nf95_put_var(ncid, varid_tsoil, tsoil)
127    
128      !IM "slab" ocean      !IM "slab" ocean
129      ierr = nf_redef(nid)      call nf95_redef(ncid)
130      ierr = nf_def_var(nid, 'TSLAB', nf_float, 1, idim2, nvarid)      call nf95_def_var(ncid, 'TSLAB', nf90_float, idim2, varid)
131      ierr = nf_put_att_text(nid, nvarid, 'title', 33, &      call nf95_put_att(ncid, varid, 'title', &
132           'Ecart de la SST (pour slab-ocean)')           'Ecart de la SST (pour slab-ocean)')
133      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
134      ierr = nf_put_var_real(nid, nvarid, tslab)      call nf95_put_var(ncid, varid, tslab)
135    
136      ierr = nf_redef(nid)      call nf95_redef(ncid)
137      ierr = nf_def_var(nid, 'SEAICE', nf_float, 1, idim2, nvarid)      call nf95_def_var(ncid, 'SEAICE', nf90_float, idim2, varid)
138      ierr = nf_put_att_text(nid, nvarid, 'title', 33, &      call nf95_put_att(ncid, varid, 'title', &
139           'Glace de mer kg/m2 (pour slab-ocean)')           'Glace de mer kg/m2 (pour slab-ocean)')
140      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
141      ierr = nf_put_var_real(nid, nvarid, seaice)      call nf95_put_var(ncid, varid, seaice)
142    
143      DO nsrf = 1, nbsrf      DO nsrf = 1, nbsrf
144         IF (nsrf<=99) THEN         IF (nsrf<=99) THEN
145            WRITE (str2, '(i2.2)') nsrf            WRITE (str2, '(i2.2)') nsrf
146            ierr = nf_redef(nid)            call nf95_redef(ncid)
147            ierr = nf_def_var(nid, 'QS'//str2, nf_float, 1, idim2, nvarid)            call nf95_def_var(ncid, 'QS'//str2, nf90_float, idim2, varid)
148            ierr = nf_put_att_text(nid, nvarid, 'title', 25, &            call nf95_put_att(ncid, varid, 'title', &
149                 'Humidite de surface No.'//str2)                 'Humidite de surface No.'//str2)
150            ierr = nf_enddef(nid)            call nf95_enddef(ncid)
151         ELSE         ELSE
152            PRINT *, 'Trop de sous-mailles'            PRINT *, 'Trop de sous-mailles'
153            STOP 1            STOP 1
154         END IF         END IF
155         ierr = nf_put_var_real(nid, nvarid, qsurf(1, nsrf))         call nf95_put_var(ncid, varid, qsurf(:, nsrf))
156      END DO      END DO
157    
158      ierr = nf_redef(nid)      call nf95_redef(ncid)
159      ierr = nf_def_var(nid, 'QSOL', nf_float, 1, idim2, nvarid)      call nf95_def_var(ncid, 'QSOL', nf90_float, idim2, varid)
160      ierr = nf_put_att_text(nid, nvarid, 'title', 20, 'Eau dans le sol (mm)')      call nf95_put_att(ncid, varid, 'title', 'Eau dans le sol (mm)')
161      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
162      ierr = nf_put_var_real(nid, nvarid, qsol)      call nf95_put_var(ncid, varid, qsol)
163    
164      DO nsrf = 1, nbsrf      DO nsrf = 1, nbsrf
165         IF (nsrf<=99) THEN         IF (nsrf<=99) THEN
166            WRITE (str2, '(i2.2)') nsrf            WRITE (str2, '(i2.2)') nsrf
167            ierr = nf_redef(nid)            call nf95_redef(ncid)
168            ierr = nf_def_var(nid, 'ALBE'//str2, nf_float, 1, idim2, nvarid)            call nf95_def_var(ncid, 'ALBE'//str2, nf90_float, idim2, varid)
169            ierr = nf_put_att_text(nid, nvarid, 'title', 23, &            call nf95_put_att(ncid, varid, 'title', &
170                 'albedo de surface No.'//str2)                 'albedo de surface No.'//str2)
171            ierr = nf_enddef(nid)            call nf95_enddef(ncid)
172         ELSE         ELSE
173            PRINT *, 'Trop de sous-mailles'            PRINT *, 'Trop de sous-mailles'
174            STOP 1            STOP 1
175         END IF         END IF
176         ierr = nf_put_var_real(nid, nvarid, albedo(1, nsrf))         call nf95_put_var(ncid, varid, albedo(:, nsrf))
177      END DO      END DO
178    
179      !IM BEG albedo LW      !IM BEG albedo LW
180      DO nsrf = 1, nbsrf      DO nsrf = 1, nbsrf
181         IF (nsrf<=99) THEN         IF (nsrf<=99) THEN
182            WRITE (str2, '(i2.2)') nsrf            WRITE (str2, '(i2.2)') nsrf
183            ierr = nf_redef(nid)            call nf95_redef(ncid)
184            ierr = nf_def_var(nid, 'ALBLW'//str2, nf_float, 1, idim2, nvarid)            call nf95_def_var(ncid, 'ALBLW'//str2, nf90_float, idim2, varid)
185            ierr = nf_put_att_text(nid, nvarid, 'title', 23, &            call nf95_put_att(ncid, varid, 'title', &
186                 'albedo LW de surface No.'//str2)                 'albedo LW de surface No.'//str2)
187            ierr = nf_enddef(nid)            call nf95_enddef(ncid)
188         ELSE         ELSE
189            PRINT *, 'Trop de sous-mailles'            PRINT *, 'Trop de sous-mailles'
190            STOP 1            STOP 1
191         END IF         END IF
192         ierr = nf_put_var_real(nid, nvarid, alblw(1, nsrf))         call nf95_put_var(ncid, varid, alblw(:, nsrf))
193      END DO      END DO
194      !IM END albedo LW      !IM END albedo LW
195    
196      DO nsrf = 1, nbsrf      DO nsrf = 1, nbsrf
197         IF (nsrf<=99) THEN         IF (nsrf<=99) THEN
198            WRITE (str2, '(i2.2)') nsrf            WRITE (str2, '(i2.2)') nsrf
199            ierr = nf_redef(nid)            call nf95_redef(ncid)
200            ierr = nf_def_var(nid, 'EVAP'//str2, nf_float, 1, idim2, nvarid)            call nf95_def_var(ncid, 'EVAP'//str2, nf90_float, idim2, varid)
201            ierr = nf_put_att_text(nid, nvarid, 'title', 28, &            call nf95_put_att(ncid, varid, 'title', &
202                 'Evaporation de surface No.'//str2)                 'Evaporation de surface No.'//str2)
203            ierr = nf_enddef(nid)            call nf95_enddef(ncid)
204         ELSE         ELSE
205            PRINT *, 'Trop de sous-mailles'            PRINT *, 'Trop de sous-mailles'
206            STOP 1            STOP 1
207         END IF         END IF
208         ierr = nf_put_var_real(nid, nvarid, evap(1, nsrf))         call nf95_put_var(ncid, varid, evap(:, nsrf))
209      END DO      END DO
210    
   
211      DO nsrf = 1, nbsrf      DO nsrf = 1, nbsrf
212         IF (nsrf<=99) THEN         IF (nsrf<=99) THEN
213            WRITE (str2, '(i2.2)') nsrf            WRITE (str2, '(i2.2)') nsrf
214            ierr = nf_redef(nid)            call nf95_redef(ncid)
215            ierr = nf_def_var(nid, 'SNOW'//str2, nf_float, 1, idim2, nvarid)            call nf95_def_var(ncid, 'SNOW'//str2, nf90_float, idim2, varid)
216            ierr = nf_put_att_text(nid, nvarid, 'title', 22, &            call nf95_put_att(ncid, varid, 'title', &
217                 'Neige de surface No.'//str2)                 'Neige de surface No.'//str2)
218            ierr = nf_enddef(nid)            call nf95_enddef(ncid)
219         ELSE         ELSE
220            PRINT *, 'Trop de sous-mailles'            PRINT *, 'Trop de sous-mailles'
221            STOP 1            STOP 1
222         END IF         END IF
223         ierr = nf_put_var_real(nid, nvarid, snow(1, nsrf))         call nf95_put_var(ncid, varid, snow(:, nsrf))
224      END DO      END DO
225    
226        call nf95_redef(ncid)
227      ierr = nf_redef(nid)      call nf95_def_var(ncid, 'RADS', nf90_float, idim2, varid)
228      ierr = nf_def_var(nid, 'RADS', nf_float, 1, idim2, nvarid)      call nf95_put_att(ncid, varid, 'title', &
     ierr = nf_put_att_text(nid, nvarid, 'title', 28, &  
229           'Rayonnement net a la surface')           'Rayonnement net a la surface')
230      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
231      ierr = nf_put_var_real(nid, nvarid, radsol)      call nf95_put_var(ncid, varid, radsol)
232    
233      ierr = nf_redef(nid)      call nf95_redef(ncid)
234      ierr = nf_def_var(nid, 'solsw', nf_float, 1, idim2, nvarid)      call nf95_def_var(ncid, 'solsw', nf90_float, idim2, varid)
235      ierr = nf_put_att_text(nid, nvarid, 'title', 32, &      call nf95_put_att(ncid, varid, 'title', &
236           'Rayonnement solaire a la surface')           'Rayonnement solaire a la surface')
237      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
238      ierr = nf_put_var_real(nid, nvarid, solsw)      call nf95_put_var(ncid, varid, solsw)
239    
240      ierr = nf_redef(nid)      call nf95_redef(ncid)
241      ierr = nf_def_var(nid, 'sollw', nf_float, 1, idim2, nvarid)      call nf95_def_var(ncid, 'sollw', nf90_float, idim2, varid)
242      ierr = nf_put_att_text(nid, nvarid, 'title', 27, &      call nf95_put_att(ncid, varid, 'title', &
243           'Rayonnement IF a la surface')           'Rayonnement IF a la surface')
244      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
245      ierr = nf_put_var_real(nid, nvarid, sollw)      call nf95_put_var(ncid, varid, sollw)
246    
247      ierr = nf_redef(nid)      call nf95_redef(ncid)
248      ierr = nf_def_var(nid, 'fder', nf_float, 1, idim2, nvarid)      call nf95_def_var(ncid, 'fder', nf90_float, idim2, varid)
249      ierr = nf_put_att_text(nid, nvarid, 'title', 14, 'Derive de flux')      call nf95_put_att(ncid, varid, 'title', 'Derive de flux')
250      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
251      ierr = nf_put_var_real(nid, nvarid, fder)      call nf95_put_var(ncid, varid, fder)
252    
253      ierr = nf_redef(nid)      call nf95_redef(ncid)
254      ierr = nf_def_var(nid, 'rain_f', nf_float, 1, idim2, nvarid)      call nf95_def_var(ncid, 'rain_f', nf90_float, idim2, varid)
255      ierr = nf_put_att_text(nid, nvarid, 'title', 21, 'precipitation liquide')      call nf95_put_att(ncid, varid, 'title', 'precipitation liquide')
256      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
257      ierr = nf_put_var_real(nid, nvarid, rain_fall)      call nf95_put_var(ncid, varid, rain_fall)
258    
259      ierr = nf_redef(nid)      call nf95_redef(ncid)
260      ierr = nf_def_var(nid, 'snow_f', nf_float, 1, idim2, nvarid)      call nf95_def_var(ncid, 'snow_f', nf90_float, idim2, varid)
261      ierr = nf_put_att_text(nid, nvarid, 'title', 20, 'precipitation solide')      call nf95_put_att(ncid, varid, 'title', 'precipitation solide')
262      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
263      ierr = nf_put_var_real(nid, nvarid, snow_fall)      call nf95_put_var(ncid, varid, snow_fall)
264    
265      DO nsrf = 1, nbsrf      DO nsrf = 1, nbsrf
266         IF (nsrf<=99) THEN         IF (nsrf<=99) THEN
267            WRITE (str2, '(i2.2)') nsrf            WRITE (str2, '(i2.2)') nsrf
268            ierr = nf_redef(nid)            call nf95_redef(ncid)
269            ierr = nf_def_var(nid, 'RUG'//str2, nf_float, 1, idim2, nvarid)            call nf95_def_var(ncid, 'RUG'//str2, nf90_float, idim2, varid)
270            ierr = nf_put_att_text(nid, nvarid, 'title', 23, &            call nf95_put_att(ncid, varid, 'title', &
271                 'rugosite de surface No.'//str2)                 'rugosite de surface No.'//str2)
272            ierr = nf_enddef(nid)            call nf95_enddef(ncid)
273         ELSE         ELSE
274            PRINT *, 'Trop de sous-mailles'            PRINT *, 'Trop de sous-mailles'
275            STOP 1            STOP 1
276         END IF         END IF
277         ierr = nf_put_var_real(nid, nvarid, frugs(1, nsrf))         call nf95_put_var(ncid, varid, frugs(:, nsrf))
278      END DO      END DO
279    
280      DO nsrf = 1, nbsrf      DO nsrf = 1, nbsrf
281         IF (nsrf<=99) THEN         IF (nsrf<=99) THEN
282            WRITE (str2, '(i2.2)') nsrf            WRITE (str2, '(i2.2)') nsrf
283            ierr = nf_redef(nid)            call nf95_redef(ncid)
284            ierr = nf_def_var(nid, 'AGESNO'//str2, nf_float, 1, idim2, nvarid)            call nf95_def_var(ncid, 'AGESNO'//str2, nf90_float, idim2, varid)
285            ierr = nf_put_att_text(nid, nvarid, 'title', 15, &            call nf95_put_att(ncid, varid, 'title', &
286                 'Age de la neige surface No.'//str2)                 'Age de la neige surface No.'//str2)
287            ierr = nf_enddef(nid)            call nf95_enddef(ncid)
288         ELSE         ELSE
289            PRINT *, 'Trop de sous-mailles'            PRINT *, 'Trop de sous-mailles'
290            STOP 1            STOP 1
291         END IF         END IF
292         ierr = nf_put_var_real(nid, nvarid, agesno(1, nsrf))         call nf95_put_var(ncid, varid, agesno(:, nsrf))
293      END DO      END DO
294    
295      ierr = nf_redef(nid)      call nf95_redef(ncid)
296      ierr = nf_def_var(nid, 'ZMEA', nf_float, 1, idim2, nvarid)      call nf95_def_var(ncid, 'ZMEA', nf90_float, idim2, varid)
297      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
298      ierr = nf_put_var_real(nid, nvarid, zmea)      call nf95_put_var(ncid, varid, zmea)
299    
300      ierr = nf_redef(nid)      call nf95_redef(ncid)
301      ierr = nf_def_var(nid, 'ZSTD', nf_float, 1, idim2, nvarid)      call nf95_def_var(ncid, 'ZSTD', nf90_float, idim2, varid)
302      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
303      ierr = nf_put_var_real(nid, nvarid, zstd)      call nf95_put_var(ncid, varid, zstd)
304      ierr = nf_redef(nid)      call nf95_redef(ncid)
305      ierr = nf_def_var(nid, 'ZSIG', nf_float, 1, idim2, nvarid)      call nf95_def_var(ncid, 'ZSIG', nf90_float, idim2, varid)
306      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
307      ierr = nf_put_var_real(nid, nvarid, zsig)      call nf95_put_var(ncid, varid, zsig)
308      ierr = nf_redef(nid)      call nf95_redef(ncid)
309      ierr = nf_def_var(nid, 'ZGAM', nf_float, 1, idim2, nvarid)      call nf95_def_var(ncid, 'ZGAM', nf90_float, idim2, varid)
310      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
311      ierr = nf_put_var_real(nid, nvarid, zgam)      call nf95_put_var(ncid, varid, zgam)
312      ierr = nf_redef(nid)      call nf95_redef(ncid)
313      ierr = nf_def_var(nid, 'ZTHE', nf_float, 1, idim2, nvarid)      call nf95_def_var(ncid, 'ZTHE', nf90_float, idim2, varid)
314      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
315      ierr = nf_put_var_real(nid, nvarid, zthe)      call nf95_put_var(ncid, varid, zthe)
316      ierr = nf_redef(nid)      call nf95_redef(ncid)
317      ierr = nf_def_var(nid, 'ZPIC', nf_float, 1, idim2, nvarid)      call nf95_def_var(ncid, 'ZPIC', nf90_float, idim2, varid)
318      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
319      ierr = nf_put_var_real(nid, nvarid, zpic)      call nf95_put_var(ncid, varid, zpic)
320      ierr = nf_redef(nid)      call nf95_redef(ncid)
321      ierr = nf_def_var(nid, 'ZVAL', nf_float, 1, idim2, nvarid)      call nf95_def_var(ncid, 'ZVAL', nf90_float, idim2, varid)
322      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
323      ierr = nf_put_var_real(nid, nvarid, zval)      call nf95_put_var(ncid, varid, zval)
324    
325      ierr = nf_redef(nid)      call nf95_redef(ncid)
326      ierr = nf_def_var(nid, 'TANCIEN', nf_float, 1, idim3, nvarid)      call nf95_def_var(ncid, 'TANCIEN', nf90_float, (/idim2, idim3/), varid)
327      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
328      ierr = nf_put_var_real(nid, nvarid, t_ancien)      call nf95_put_var(ncid, varid, t_ancien)
329    
330      ierr = nf_redef(nid)      call nf95_redef(ncid)
331      ierr = nf_def_var(nid, 'QANCIEN', nf_float, 1, idim3, nvarid)      call nf95_def_var(ncid, 'QANCIEN', nf90_float, (/idim2, idim3/), varid)
332      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
333      ierr = nf_put_var_real(nid, nvarid, q_ancien)      call nf95_put_var(ncid, varid, q_ancien)
334    
335      ierr = nf_redef(nid)      call nf95_redef(ncid)
336      ierr = nf_def_var(nid, 'RUGMER', nf_float, 1, idim2, nvarid)      call nf95_def_var(ncid, 'RUGMER', nf90_float, idim2, varid)
337      ierr = nf_put_att_text(nid, nvarid, 'title', 28, &      call nf95_put_att(ncid, varid, 'title', &
338           'Longueur de rugosite sur mer')           'Longueur de rugosite sur mer')
339      ierr = nf_enddef(nid)      call nf95_enddef(ncid)
340      ierr = nf_put_var_real(nid, nvarid, frugs(1, is_oce))      call nf95_put_var(ncid, varid, frugs(:, is_oce))
   
     ierr = nf_redef(nid)  
     ierr = nf_def_var(nid, 'CLWCON', nf_float, 1, idim2, nvarid)  
     ierr = nf_put_att_text(nid, nvarid, 'title', 28, 'Eau liquide convective')  
     ierr = nf_enddef(nid)  
     ierr = nf_put_var_real(nid, nvarid, clwcon)  
   
     ierr = nf_redef(nid)  
     ierr = nf_def_var(nid, 'RNEBCON', nf_float, 1, idim2, nvarid)  
     ierr = nf_put_att_text(nid, nvarid, 'title', 28, 'Nebulosite convective')  
     ierr = nf_enddef(nid)  
     ierr = nf_put_var_real(nid, nvarid, rnebcon)  
   
     ierr = nf_redef(nid)  
     ierr = nf_def_var(nid, 'RATQS', nf_float, 1, idim2, nvarid)  
     ierr = nf_put_att_text(nid, nvarid, 'title', 5, 'Ratqs')  
     ierr = nf_enddef(nid)  
     ierr = nf_put_var_real(nid, nvarid, ratqs)  
   
     ! run_off_lic_0  
   
     ierr = nf_redef(nid)  
     ierr = nf_def_var(nid, 'RUNOFFLIC0', nf_float, 1, idim2, nvarid)  
     ierr = nf_put_att_text(nid, nvarid, 'title', 10, 'Runofflic0')  
     ierr = nf_enddef(nid)  
     ierr = nf_put_var_real(nid, nvarid, run_off_lic_0)  
341    
342        call nf95_redef(ncid)
343        call nf95_def_var(ncid, 'CLWCON', nf90_float, idim2, varid)
344        call nf95_put_att(ncid, varid, 'title', 'Eau liquide convective')
345        call nf95_enddef(ncid)
346        call nf95_put_var(ncid, varid, clwcon(:, 1))
347    
348        call nf95_redef(ncid)
349        call nf95_def_var(ncid, 'RNEBCON', nf90_float, idim2, varid)
350        call nf95_put_att(ncid, varid, 'title', 'Nebulosite convective')
351        call nf95_enddef(ncid)
352        call nf95_put_var(ncid, varid, rnebcon(:, 1))
353    
354        call nf95_redef(ncid)
355        call nf95_def_var(ncid, 'RATQS', nf90_float, idim2, varid)
356        call nf95_put_att(ncid, varid, 'title', 'Ratqs')
357        call nf95_enddef(ncid)
358        call nf95_put_var(ncid, varid, ratqs(:, 1))
359    
360        call nf95_redef(ncid)
361        call nf95_def_var(ncid, 'RUNOFFLIC0', nf90_float, idim2, &
362             varid_run_off_lic_0)
363        call nf95_put_att(ncid, varid_run_off_lic_0, 'title', 'Runofflic0')
364    
365        call nf95_def_var(ncid, 'sig1', nf90_float, (/idim2, idim3/), varid_sig1)
366        call nf95_put_att(ncid, varid_sig1, 'long_name', &
367             'section adiabatic updraft')
368    
369        call nf95_def_var(ncid, 'w01', nf90_float, (/idim2, idim3/), varid_w01)
370        call nf95_put_att(ncid, varid_w01, 'long_name', &
371             'vertical velocity within adiabatic updraft')
372    
373        call nf95_enddef(ncid)
374    
375        call nf95_put_var(ncid, varid_run_off_lic_0, run_off_lic_0)
376        call nf95_put_var(ncid, varid_sig1, sig1)
377        call nf95_put_var(ncid, varid_w01, w01)
378    
379      ierr = nf_close(nid)      call nf95_close(ncid)
380    
381    END SUBROUTINE phyredem    END SUBROUTINE phyredem
382    

Legend:
Removed from v.19  
changed lines
  Added in v.140

  ViewVC Help
Powered by ViewVC 1.1.21