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

Diff of /trunk/phylmd/phyredem.f

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

trunk/libf/phylmd/phyredem.f90 revision 43 by guez, Fri Apr 8 12:43:31 2011 UTC trunk/Sources/phylmd/phyredem.f revision 156 by guez, Thu Jul 16 17:39:10 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, 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, nf95_def_dim, &      USE indicesol, ONLY: is_lic, is_oce, is_sic, is_ter, nbsrf
22           nf95_def_var, nf95_enddef, nf95_redef, nf95_put_var, nf95_close      USE netcdf, ONLY: nf90_clobber, nf90_global, nf90_float
23      USE netcdf, ONLY : nf90_clobber, nf90_global, nf90_float      USE netcdf95, ONLY: nf95_create, nf95_put_att, nf95_def_dim, &
24             nf95_def_var, nf95_enddef, nf95_put_var, nf95_close
25      CHARACTER(len=*) fichnom      use phyetat0_m, only: rlat, rlon
26      REAL, INTENT (IN) :: rlat(klon), rlon(klon)      USE temps, ONLY: itau_phy
27      REAL :: tsol(klon, nbsrf)  
28      REAL :: tsoil(klon, nsoilmx, nbsrf)      CHARACTER(len=*), INTENT(IN):: fichnom
29        REAL, INTENT(IN):: pctsrf(:, :) ! (klon, nbsrf)
30      REAL :: tslab(klon), seaice(klon) !IM "slab" ocean      REAL, INTENT(IN):: tsol(:, :) ! (klon, nbsrf)
31      REAL :: qsurf(klon, nbsrf)      REAL, INTENT(IN):: tsoil(:, :, :) ! (klon, nsoilmx, nbsrf)
32      REAL, intent(in):: qsol(klon)      REAL, INTENT(IN):: tslab(:), seaice(:) ! (klon) slab ocean
33      REAL :: snow(klon, nbsrf)      REAL, INTENT(IN):: qsurf(:, :) ! (klon, nbsrf)
34      REAL :: albedo(klon, nbsrf)  
35        REAL, intent(in):: qsol(:) ! (klon)
36      REAL :: alblw(klon, nbsrf)      ! column-density of water in soil, in kg m-2
37    
38      REAL :: evap(klon, nbsrf)      REAL, INTENT(IN):: snow(klon, nbsrf)
39      REAL :: rain_fall(klon)      REAL, INTENT(IN):: albedo(klon, nbsrf)
40      REAL :: snow_fall(klon)      REAL, INTENT(IN):: evap(klon, nbsrf)
41      REAL :: solsw(klon)      REAL, INTENT(IN):: rain_fall(klon)
42      REAL :: sollw(klon)      REAL, INTENT(IN):: snow_fall(klon)
43      REAL :: fder(klon)      REAL, INTENT(IN):: solsw(klon)
44      REAL :: radsol(klon)      REAL, INTENT(IN):: sollw(klon)
45      REAL :: frugs(klon, nbsrf)      REAL, INTENT(IN):: fder(klon)
46      REAL :: agesno(klon, nbsrf)      REAL, INTENT(IN):: radsol(klon)
47      REAL :: zmea(klon)      REAL, INTENT(IN):: frugs(klon, nbsrf)
48        REAL, INTENT(IN):: agesno(klon, nbsrf)
49        REAL, INTENT(IN):: zmea(klon)
50      REAL, intent(in):: zstd(klon)      REAL, intent(in):: zstd(klon)
51      REAL, intent(in):: zsig(klon)      REAL, intent(in):: zsig(klon)
52      REAL :: zgam(klon)      REAL, intent(in):: zgam(klon)
53      REAL :: zthe(klon)      REAL, intent(in):: zthe(klon)
54      REAL :: zpic(klon)      REAL, intent(in):: zpic(klon)
55      REAL :: zval(klon)      REAL, intent(in):: zval(klon)
56      REAL :: pctsrf(klon, nbsrf)      REAL, intent(in):: t_ancien(klon, klev), q_ancien(klon, klev)
57      REAL :: t_ancien(klon, klev), q_ancien(klon, klev)      REAL, intent(in):: rnebcon(klon, klev), ratqs(klon, klev)
58      REAL :: clwcon(klon, klev), rnebcon(klon, klev), ratqs(klon, klev)      REAL, intent(in):: clwcon(klon, klev)
59      REAL :: run_off_lic_0(klon)      REAL, intent(in):: run_off_lic_0(klon)
60        real, intent(in):: sig1(klon, klev) ! section adiabatic updraft
61      INTEGER :: nid, nvarid, idim2, idim3  
62        real, intent(in):: w01(klon, klev)
63      INTEGER :: isoil, nsrf      ! vertical velocity within adiabatic updraft
64      CHARACTER (7) :: str7  
65      CHARACTER (2) :: str2      ! Local:
66    
67        INTEGER ncid, idim2, idim3, dimid_nbsrf, dimid_nsoilmx
68        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
70        integer varid_fsic, varid_ts, varid_tsoil, varid_tslab, varid_SEAICE
71        integer varid_qs, varid_QSOL, varid_albe, varid_evap, varid_snow
72        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    
80      PRINT *, 'Call sequence information: phyredem'      PRINT *, 'Call sequence information: phyredem'
81      CALL nf95_create(fichnom, nf90_clobber, nid)      CALL nf95_create(fichnom, nf90_clobber, ncid)
82    
83      call nf95_put_att(nid, nf90_global, 'title', &      call nf95_put_att(ncid, nf90_global, 'title', &
84           'Fichier redémarrage physique')           'start file for the physics code')
85      call nf95_put_att(nid, nf90_global, "itau_phy", itau_phy)      call nf95_put_att(ncid, nf90_global, "itau_phy", itau_phy)
86    
87      call nf95_def_dim(nid, 'points_physiques', klon, idim2)      call nf95_def_dim(ncid, 'points_physiques', klon, idim2)
88      call nf95_def_dim(nid, 'horizon_vertical', klon*klev, idim3)      call nf95_def_dim(ncid, 'klev', klev, idim3)
89        call nf95_def_dim(ncid, 'nbsrf', nbsrf, dimid_nbsrf)
90      call nf95_def_var(nid, 'longitude', nf90_float, idim2, nvarid)      call nf95_def_dim(ncid, 'nsoilmx', nsoilmx, dimid_nsoilmx)
91      call nf95_put_att(nid, nvarid, 'title', &  
92           'Longitudes de la grille physique')      call nf95_def_var(ncid, 'longitude', nf90_float, idim2, varid_rlon)
93      call nf95_enddef(nid)      call nf95_def_var(ncid, 'latitude', nf90_float, idim2, varid_rlat)
94      call nf95_put_var(nid, nvarid, rlon)  
95        call nf95_def_var(ncid, 'masque', nf90_float, idim2, varid_zmasq)
96      call nf95_redef(nid)      call nf95_put_att(ncid, varid_zmasq, 'title', 'masque terre mer')
97      call nf95_def_var(nid, 'latitude', nf90_float, idim2, nvarid)  
98      call nf95_put_att(nid, nvarid, 'title', &      ! Fractions de chaque sous-surface
99           'Latitudes de la grille physique')  
100      call nf95_enddef(nid)      call nf95_def_var(ncid, 'FTER', nf90_float, idim2, varid_fter)
101      call nf95_put_var(nid, nvarid, rlat)      call nf95_put_att(ncid, varid_fter, 'title', 'fraction de continent')
102    
103      ! PB ajout du masque terre/mer      call nf95_def_var(ncid, 'FLIC', nf90_float, idim2, varid_flic)
104        call nf95_put_att(ncid, varid_flic, 'title', 'fraction glace de terre')
105      call nf95_redef(nid)  
106      call nf95_def_var(nid, 'masque', nf90_float, idim2, nvarid)      call nf95_def_var(ncid, 'FOCE', nf90_float, idim2, varid_foce)
107      call nf95_put_att(nid, nvarid, 'title', 'masque terre mer')      call nf95_put_att(ncid, varid_foce, 'title', 'fraction ocean')
108      call nf95_enddef(nid)  
109      call nf95_put_var(nid, nvarid, zmasq)      call nf95_def_var(ncid, 'FSIC', nf90_float, idim2, varid_fsic)
110      ! BP ajout des fraction de chaque sous-surface      call nf95_put_att(ncid, varid_fsic, 'title', 'fraction glace mer')
111    
112      ! 1. fraction de terre      call nf95_def_var(ncid, 'TS', nf90_float, (/idim2, dimid_nbsrf/), varid_ts)
113        call nf95_put_att(ncid, varid_ts, 'title', 'surface temperature')
114      call nf95_redef(nid)  
115      call nf95_def_var(nid, 'FTER', nf90_float, idim2, nvarid)      call nf95_def_var(ncid, 'Tsoil', nf90_float, (/idim2, dimid_nsoilmx, &
116      call nf95_put_att(nid, nvarid, 'title', 'fraction de continent')           dimid_nbsrf/), varid_tsoil)
117      call nf95_enddef(nid)      call nf95_put_att(ncid, varid_tsoil, 'title', 'soil temperature')
118      call nf95_put_var(nid, nvarid, pctsrf(:, is_ter))  
119        call nf95_def_var(ncid, 'TSLAB', nf90_float, idim2, varid_tslab)
120      ! 2. Fraction de glace de terre      call nf95_put_att(ncid, varid_tslab, 'title', &
   
     call nf95_redef(nid)  
     call nf95_def_var(nid, 'FLIC', nf90_float, idim2, nvarid)  
     call nf95_put_att(nid, nvarid, 'title', 'fraction glace de terre')  
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, pctsrf(:, is_lic))  
   
     ! 3. fraction ocean  
   
     call nf95_redef(nid)  
     call nf95_def_var(nid, 'FOCE', nf90_float, idim2, nvarid)  
     call nf95_put_att(nid, nvarid, 'title', 'fraction ocean')  
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, pctsrf(:, is_oce))  
   
     ! 4. Fraction glace de mer  
   
     call nf95_redef(nid)  
     call nf95_def_var(nid, 'FSIC', nf90_float, idim2, nvarid)  
     call nf95_put_att(nid, nvarid, 'title', 'fraction glace mer')  
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, pctsrf(:, is_sic))  
   
   
   
     DO nsrf = 1, nbsrf  
        IF (nsrf<=99) THEN  
           WRITE (str2, '(i2.2)') nsrf  
           call nf95_redef(nid)  
           call nf95_def_var(nid, 'TS'//str2, nf90_float, idim2, nvarid)  
           call nf95_put_att(nid, nvarid, 'title', &  
                'Temperature de surface No.'//str2)  
           call nf95_enddef(nid)  
        ELSE  
           PRINT *, 'Trop de sous-mailles'  
           STOP 1  
        END IF  
        call nf95_put_var(nid, nvarid, tsol(:, nsrf))  
     END DO  
   
     DO nsrf = 1, nbsrf  
        DO isoil = 1, nsoilmx  
           IF (isoil<=99 .AND. nsrf<=99) THEN  
              WRITE (str7, '(i2.2, "srf", i2.2)') isoil, nsrf  
              call nf95_redef(nid)  
              call nf95_def_var(nid, 'Tsoil'//str7, nf90_float, idim2, nvarid)  
              call nf95_put_att(nid, nvarid, 'title', &  
                   'Temperature du sol No.'//str7)  
              call nf95_enddef(nid)  
           ELSE  
              PRINT *, 'Trop de couches'  
              STOP 1  
           END IF  
           call nf95_put_var(nid, nvarid, tsoil(:, isoil, nsrf))  
        END DO  
     END DO  
   
     !IM "slab" ocean  
     call nf95_redef(nid)  
     call nf95_def_var(nid, 'TSLAB', nf90_float, idim2, nvarid)  
     call nf95_put_att(nid, nvarid, 'title', &  
121           'Ecart de la SST (pour slab-ocean)')           'Ecart de la SST (pour slab-ocean)')
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, tslab)  
122    
123      call nf95_redef(nid)      call nf95_def_var(ncid, 'SEAICE', nf90_float, idim2, varid_SEAICE)
124      call nf95_def_var(nid, 'SEAICE', nf90_float, idim2, nvarid)      call nf95_put_att(ncid, varid_SEAICE, 'title', &
     call nf95_put_att(nid, nvarid, 'title', &  
125           'Glace de mer kg/m2 (pour slab-ocean)')           'Glace de mer kg/m2 (pour slab-ocean)')
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, 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(nid)      call nf95_def_var(ncid, 'QSOL', nf90_float, idim2, varid_QSOL)
131            call nf95_def_var(nid, 'QS'//str2, nf90_float, idim2, nvarid)      call nf95_put_att(ncid, varid_QSOL, 'title', 'Eau dans le sol (mm)')
132            call nf95_put_att(nid, nvarid, 'title', &  
133                 'Humidite de surface No.'//str2)      call nf95_def_var(ncid, 'ALBE', nf90_float, (/idim2, dimid_nbsrf/), &
134            call nf95_enddef(nid)           varid_albe)
135         ELSE      call nf95_put_att(ncid, varid_albe, 'title', 'albedo de surface')
136            PRINT *, 'Trop de sous-mailles'  
137            STOP 1      call nf95_def_var(ncid, 'EVAP', nf90_float, (/idim2, dimid_nbsrf/), &
138         END IF           varid_evap)
139         call nf95_put_var(nid, nvarid, qsurf(:, nsrf))      call nf95_put_att(ncid, varid_evap, 'title', 'Evaporation de surface')
140      END DO  
141        call nf95_def_var(ncid, 'SNOW', nf90_float, (/idim2, dimid_nbsrf/), &
142      call nf95_redef(nid)           varid_snow)
143      call nf95_def_var(nid, 'QSOL', nf90_float, idim2, nvarid)      call nf95_put_att(ncid, varid_snow, 'title', 'Neige de surface')
144      call nf95_put_att(nid, nvarid, 'title', 'Eau dans le sol (mm)')  
145      call nf95_enddef(nid)      call nf95_def_var(ncid, 'RADS', nf90_float, idim2, varid_rads)
146      call nf95_put_var(nid, nvarid, qsol)      call nf95_put_att(ncid, varid_rads, 'title', &
   
     DO nsrf = 1, nbsrf  
        IF (nsrf<=99) THEN  
           WRITE (str2, '(i2.2)') nsrf  
           call nf95_redef(nid)  
           call nf95_def_var(nid, 'ALBE'//str2, nf90_float, idim2, nvarid)  
           call nf95_put_att(nid, nvarid, 'title', &  
                'albedo de surface No.'//str2)  
           call nf95_enddef(nid)  
        ELSE  
           PRINT *, 'Trop de sous-mailles'  
           STOP 1  
        END IF  
        call nf95_put_var(nid, nvarid, albedo(:, nsrf))  
     END DO  
   
     !IM BEG albedo LW  
     DO nsrf = 1, nbsrf  
        IF (nsrf<=99) THEN  
           WRITE (str2, '(i2.2)') nsrf  
           call nf95_redef(nid)  
           call nf95_def_var(nid, 'ALBLW'//str2, nf90_float, idim2, nvarid)  
           call nf95_put_att(nid, nvarid, 'title', &  
                'albedo LW de surface No.'//str2)  
           call nf95_enddef(nid)  
        ELSE  
           PRINT *, 'Trop de sous-mailles'  
           STOP 1  
        END IF  
        call nf95_put_var(nid, nvarid, alblw(:, nsrf))  
     END DO  
     !IM END albedo LW  
   
     DO nsrf = 1, nbsrf  
        IF (nsrf<=99) THEN  
           WRITE (str2, '(i2.2)') nsrf  
           call nf95_redef(nid)  
           call nf95_def_var(nid, 'EVAP'//str2, nf90_float, idim2, nvarid)  
           call nf95_put_att(nid, nvarid, 'title', &  
                'Evaporation de surface No.'//str2)  
           call nf95_enddef(nid)  
        ELSE  
           PRINT *, 'Trop de sous-mailles'  
           STOP 1  
        END IF  
        call nf95_put_var(nid, nvarid, evap(:, nsrf))  
     END DO  
   
   
     DO nsrf = 1, nbsrf  
        IF (nsrf<=99) THEN  
           WRITE (str2, '(i2.2)') nsrf  
           call nf95_redef(nid)  
           call nf95_def_var(nid, 'SNOW'//str2, nf90_float, idim2, nvarid)  
           call nf95_put_att(nid, nvarid, 'title', &  
                'Neige de surface No.'//str2)  
           call nf95_enddef(nid)  
        ELSE  
           PRINT *, 'Trop de sous-mailles'  
           STOP 1  
        END IF  
        call nf95_put_var(nid, nvarid, snow(:, nsrf))  
     END DO  
   
   
     call nf95_redef(nid)  
     call nf95_def_var(nid, 'RADS', nf90_float, idim2, nvarid)  
     call nf95_put_att(nid, nvarid, 'title', &  
147           'Rayonnement net a la surface')           'Rayonnement net a la surface')
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, radsol)  
148    
149      call nf95_redef(nid)      call nf95_def_var(ncid, 'solsw', nf90_float, idim2, varid_solsw)
150      call nf95_def_var(nid, 'solsw', nf90_float, idim2, nvarid)      call nf95_put_att(ncid, varid_solsw, 'title', &
     call nf95_put_att(nid, nvarid, 'title', &  
151           'Rayonnement solaire a la surface')           'Rayonnement solaire a la surface')
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, solsw)  
152    
153      call nf95_redef(nid)      call nf95_def_var(ncid, 'sollw', nf90_float, idim2, varid_sollw)
154      call nf95_def_var(nid, 'sollw', nf90_float, idim2, nvarid)      call nf95_put_att(ncid, varid_sollw, 'title', &
     call nf95_put_att(nid, nvarid, 'title', &  
155           'Rayonnement IF a la surface')           'Rayonnement IF a la surface')
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, sollw)  
156    
157      call nf95_redef(nid)      call nf95_def_var(ncid, 'fder', nf90_float, idim2, varid_fder)
158      call nf95_def_var(nid, 'fder', nf90_float, idim2, nvarid)      call nf95_put_att(ncid, varid_fder, 'title', 'Derive de flux')
159      call nf95_put_att(nid, nvarid, 'title', 'Derive de flux')  
160      call nf95_enddef(nid)      call nf95_def_var(ncid, 'rain_f', nf90_float, idim2, varid_rain_f)
161      call nf95_put_var(nid, nvarid, fder)      call nf95_put_att(ncid, varid_rain_f, 'title', 'precipitation liquide')
162    
163      call nf95_redef(nid)      call nf95_def_var(ncid, 'snow_f', nf90_float, idim2, varid_snow_f)
164      call nf95_def_var(nid, 'rain_f', nf90_float, idim2, nvarid)      call nf95_put_att(ncid, varid_snow_f, 'title', 'precipitation solide')
165      call nf95_put_att(nid, nvarid, 'title', 'precipitation liquide')  
166      call nf95_enddef(nid)      call nf95_def_var(ncid, 'RUG', nf90_float, (/idim2, dimid_nbsrf/), &
167      call nf95_put_var(nid, nvarid, rain_fall)           varid_rug)
168        call nf95_put_att(ncid, varid_rug, 'title', 'rugosite de surface')
169      call nf95_redef(nid)  
170      call nf95_def_var(nid, 'snow_f', nf90_float, idim2, nvarid)      call nf95_def_var(ncid, 'AGESNO', nf90_float, (/idim2, dimid_nbsrf/), &
171      call nf95_put_att(nid, nvarid, 'title', 'precipitation solide')           varid_agesno)
172      call nf95_enddef(nid)      call nf95_put_att(ncid, varid_agesno, 'title', 'Age de la neige surface')
173      call nf95_put_var(nid, nvarid, snow_fall)  
174        call nf95_def_var(ncid, 'ZMEA', nf90_float, idim2, varid_zmea)
175      DO nsrf = 1, nbsrf      call nf95_def_var(ncid, 'ZSTD', nf90_float, idim2, varid_zstd)
176         IF (nsrf<=99) THEN      call nf95_def_var(ncid, 'ZSIG', nf90_float, idim2, varid_zsig)
177            WRITE (str2, '(i2.2)') nsrf      call nf95_def_var(ncid, 'ZGAM', nf90_float, idim2, varid_zgam)
178            call nf95_redef(nid)      call nf95_def_var(ncid, 'ZTHE', nf90_float, idim2, varid_zthe)
179            call nf95_def_var(nid, 'RUG'//str2, nf90_float, idim2, nvarid)      call nf95_def_var(ncid, 'ZPIC', nf90_float, idim2, varid_zpic)
180            call nf95_put_att(nid, nvarid, 'title', &      call nf95_def_var(ncid, 'ZVAL', nf90_float, idim2, varid_zval)
181                 'rugosite de surface No.'//str2)      call nf95_def_var(ncid, 'TANCIEN', nf90_float, (/idim2, idim3/), &
182            call nf95_enddef(nid)           varid_tancien)
183         ELSE      call nf95_def_var(ncid, 'QANCIEN', nf90_float, (/idim2, idim3/), &
184            PRINT *, 'Trop de sous-mailles'           varid_qancien)
185            STOP 1  
186         END IF      call nf95_def_var(ncid, 'RUGMER', nf90_float, idim2, varid_rugmer)
187         call nf95_put_var(nid, nvarid, frugs(:, nsrf))      call nf95_put_att(ncid, varid_rugmer, 'title', &
     END DO  
   
     DO nsrf = 1, nbsrf  
        IF (nsrf<=99) THEN  
           WRITE (str2, '(i2.2)') nsrf  
           call nf95_redef(nid)  
           call nf95_def_var(nid, 'AGESNO'//str2, nf90_float, idim2, nvarid)  
           call nf95_put_att(nid, nvarid, 'title', &  
                'Age de la neige surface No.'//str2)  
           call nf95_enddef(nid)  
        ELSE  
           PRINT *, 'Trop de sous-mailles'  
           STOP 1  
        END IF  
        call nf95_put_var(nid, nvarid, agesno(:, nsrf))  
     END DO  
   
     call nf95_redef(nid)  
     call nf95_def_var(nid, 'ZMEA', nf90_float, idim2, nvarid)  
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, zmea)  
   
     call nf95_redef(nid)  
     call nf95_def_var(nid, 'ZSTD', nf90_float, idim2, nvarid)  
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, zstd)  
     call nf95_redef(nid)  
     call nf95_def_var(nid, 'ZSIG', nf90_float, idim2, nvarid)  
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, zsig)  
     call nf95_redef(nid)  
     call nf95_def_var(nid, 'ZGAM', nf90_float, idim2, nvarid)  
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, zgam)  
     call nf95_redef(nid)  
     call nf95_def_var(nid, 'ZTHE', nf90_float, idim2, nvarid)  
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, zthe)  
     call nf95_redef(nid)  
     call nf95_def_var(nid, 'ZPIC', nf90_float, idim2, nvarid)  
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, zpic)  
     call nf95_redef(nid)  
     call nf95_def_var(nid, 'ZVAL', nf90_float, idim2, nvarid)  
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, zval)  
   
     call nf95_redef(nid)  
     call nf95_def_var(nid, 'TANCIEN', nf90_float, idim3, nvarid)  
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, pack(t_ancien, .true.))  
   
     call nf95_redef(nid)  
     call nf95_def_var(nid, 'QANCIEN', nf90_float, idim3, nvarid)  
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, pack(q_ancien, .true.))  
   
     call nf95_redef(nid)  
     call nf95_def_var(nid, 'RUGMER', nf90_float, idim2, nvarid)  
     call nf95_put_att(nid, nvarid, 'title', &  
188           'Longueur de rugosite sur mer')           'Longueur de rugosite sur mer')
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, frugs(:, is_oce))  
189    
190      call nf95_redef(nid)      call nf95_def_var(ncid, 'CLWCON', nf90_float, idim2, varid_clwcon)
191      call nf95_def_var(nid, 'CLWCON', nf90_float, idim2, nvarid)      call nf95_put_att(ncid, varid_clwcon, 'title', 'Eau liquide convective')
192      call nf95_put_att(nid, nvarid, 'title', 'Eau liquide convective')  
193      call nf95_enddef(nid)      call nf95_def_var(ncid, 'RNEBCON', nf90_float, idim2, varid_rnebcon)
194      call nf95_put_var(nid, nvarid, clwcon)      call nf95_put_att(ncid, varid_rnebcon, 'title', 'Nebulosite convective')
195    
196      call nf95_redef(nid)      call nf95_def_var(ncid, 'RATQS', nf90_float, idim2, varid_ratqs)
197      call nf95_def_var(nid, 'RNEBCON', nf90_float, idim2, nvarid)      call nf95_put_att(ncid, varid_ratqs, 'title', 'Ratqs')
     call nf95_put_att(nid, nvarid, 'title', 'Nebulosite convective')  
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, rnebcon)  
   
     call nf95_redef(nid)  
     call nf95_def_var(nid, 'RATQS', nf90_float, idim2, nvarid)  
     call nf95_put_att(nid, nvarid, 'title', 'Ratqs')  
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, ratqs)  
   
     ! run_off_lic_0  
   
     call nf95_redef(nid)  
     call nf95_def_var(nid, 'RUNOFFLIC0', nf90_float, idim2, nvarid)  
     call nf95_put_att(nid, nvarid, 'title', 'Runofflic0')  
     call nf95_enddef(nid)  
     call nf95_put_var(nid, nvarid, run_off_lic_0)  
198    
199        call nf95_def_var(ncid, 'RUNOFFLIC0', nf90_float, idim2, &
200             varid_run_off_lic_0)
201        call nf95_put_att(ncid, varid_run_off_lic_0, 'title', 'Runofflic0')
202    
203        call nf95_def_var(ncid, 'sig1', nf90_float, (/idim2, idim3/), varid_sig1)
204        call nf95_put_att(ncid, varid_sig1, 'long_name', &
205             'section adiabatic updraft')
206    
207        call nf95_def_var(ncid, 'w01', nf90_float, (/idim2, idim3/), varid_w01)
208        call nf95_put_att(ncid, varid_w01, 'long_name', &
209             'vertical velocity within adiabatic updraft')
210    
211        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)
251        call nf95_put_var(ncid, varid_sig1, sig1)
252        call nf95_put_var(ncid, varid_w01, w01)
253    
254      call nf95_close(nid)      call nf95_close(ncid)
255    
256    END SUBROUTINE phyredem    END SUBROUTINE phyredem
257    

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

  ViewVC Help
Powered by ViewVC 1.1.21