/[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.f revision 3 by guez, Wed Feb 27 13:16:39 2008 UTC trunk/libf/phylmd/phyredem.f90 revision 15 by guez, Fri Aug 1 15:24:12 2008 UTC
# Line 1  Line 1 
1  !  module phyredem_m
2  ! $Header: /home/cvsroot/LMDZ4/libf/phylmd/phyredem.F,v 1.3 2005/05/25 13:10:09 fairhead Exp $  
3  !    IMPLICIT NONE
4  c  
5        SUBROUTINE phyredem (fichnom,dtime,radpas,  contains
6       .           rlat,rlon, pctsrf,tsol,tsoil,  
7  cIM "slab" ocean    SUBROUTINE phyredem(fichnom, rlat, rlon, pctsrf, tsol, tsoil, tslab, &
8       .           tslab,seaice,         seaice, qsurf, qsol, snow, albedo, alblw, evap, rain_fall,&
9       .           qsurf,qsol,snow,         snow_fall, solsw, sollw, fder, radsol, frugs, agesno, zmea,&
10       .           albedo, alblw, evap, rain_fall, snow_fall,         zstd, zsig, zgam, zthe, zpic, zval, t_ancien, q_ancien,&
11       .           solsw, sollw,fder,         rnebcon, ratqs, clwcon, run_off_lic_0)
12       .           radsol,frugs,agesno,  
13       .           zmea,zstd,zsig,zgam,zthe,zpic,zval,rugsrel,      ! From phylmd/phyredem.F, v 1.3 2005/05/25 13:10:09
14       .           t_ancien, q_ancien, rnebcon, ratqs, clwcon,      ! Auteur(s) Z.X. Li (LMD/CNRS) date: 19930818
15       .           run_off_lic_0)      ! Objet: Ecriture de l'etat de démarrage ou redémarrage pour la physique
16        use dimens_m  
17        use indicesol      USE indicesol, ONLY : is_lic, is_oce, is_sic, is_ter, nbsrf
18        use dimphy      USE dimphy, ONLY : klev, klon, zmasq
19        use conf_gcm_m      USE dimsoil, ONLY : nsoilmx
20        use dimsoil      USE temps, ONLY : itau_phy
21        use temps      USE netcdf95, ONLY : nf95_create, nf95_put_att
22        use clesphys      USE netcdf, ONLY : nf90_clobber, nf90_global
23        IMPLICIT none  
24  c======================================================================      INCLUDE 'netcdf.inc'
25  c Auteur(s) Z.X. Li (LMD/CNRS) date: 19930818  
26  c Objet: Ecriture de l'etat de redemarrage pour la physique      CHARACTER(len=*) fichnom
27  c======================================================================      REAL, INTENT (IN) :: rlat(klon), rlon(klon)
28        include "netcdf.inc"      REAL :: tsol(klon, nbsrf)
29  c======================================================================      REAL :: tsoil(klon, nsoilmx, nbsrf)
30        CHARACTER*(*) fichnom  
31        REAL dtime      REAL :: tslab(klon), seaice(klon) !IM "slab" ocean
32        INTEGER radpas      REAL :: qsurf(klon, nbsrf)
33        REAL, intent(in):: rlat(klon), rlon(klon)      REAL :: qsol(klon)
34        REAL tsol(klon,nbsrf)      REAL :: snow(klon, nbsrf)
35        REAL tsoil(klon,nsoilmx,nbsrf)      REAL :: albedo(klon, nbsrf)
36  cIM "slab" ocean  
37        REAL tslab(klon), seaice(klon)      REAL :: alblw(klon, nbsrf)
38        REAL qsurf(klon,nbsrf)  
39        REAL qsol(klon)      REAL :: evap(klon, nbsrf)
40        REAL snow(klon,nbsrf)      REAL :: rain_fall(klon)
41        REAL albedo(klon,nbsrf)      REAL :: snow_fall(klon)
42  cIM BEG      REAL :: solsw(klon)
43        REAL alblw(klon,nbsrf)      REAL :: sollw(klon)
44  cIM END      REAL :: fder(klon)
45        REAL evap(klon,nbsrf)      REAL :: radsol(klon)
46        REAL rain_fall(klon)      REAL :: frugs(klon, nbsrf)
47        REAL snow_fall(klon)      REAL :: agesno(klon, nbsrf)
48        real solsw(klon)      REAL :: zmea(klon)
49        real sollw(klon)      REAL, intent(in):: zstd(klon)
50        real fder(klon)      REAL, intent(in):: zsig(klon)
51        REAL radsol(klon)      REAL :: zgam(klon)
52        REAL frugs(klon,nbsrf)      REAL :: zthe(klon)
53        REAL agesno(klon,nbsrf)      REAL :: zpic(klon)
54        REAL zmea(klon)      REAL :: zval(klon)
55        REAL zstd(klon)      REAL :: pctsrf(klon, nbsrf)
56        REAL zsig(klon)      REAL :: t_ancien(klon, klev), q_ancien(klon, klev)
57        REAL zgam(klon)      REAL :: clwcon(klon, klev), rnebcon(klon, klev), ratqs(klon, klev)
58        REAL zthe(klon)      REAL :: run_off_lic_0(klon)
59        REAL zpic(klon)  
60        REAL zval(klon)      INTEGER :: nid, nvarid, idim2, idim3
61        REAL rugsrel(klon)      INTEGER :: ierr
62        REAL pctsrf(klon, nbsrf)  
63        REAL t_ancien(klon,klev), q_ancien(klon,klev)      INTEGER :: isoil, nsrf
64        real clwcon(klon,klev),rnebcon(klon,klev),ratqs(klon,klev)      CHARACTER (7) :: str7
65        REAL run_off_lic_0(klon)      CHARACTER (2) :: str2
66  c  
67        INTEGER nid, nvarid, idim1, idim2, idim3      !------------------------------------------------------------
68        INTEGER ierr  
69        INTEGER length      PRINT *, 'Call sequence information: phyredem'
70        PARAMETER (length=100)      CALL nf95_create(fichnom, nf90_clobber, nid)
71        REAL tab_cntrl(length)  
72  c      call nf95_put_att(nid, nf90_global, 'title', 'Fichier redémarrage physique')
73        INTEGER isoil, nsrf      call nf95_put_att(nid, nf90_global, "itau_phy", itau_phy)
74        CHARACTER*7 str7  
75        CHARACTER*2 str2      ierr = nf_def_dim(nid, 'points_physiques', klon, idim2)
76  c      ierr = nf_def_dim(nid, 'horizon_vertical', klon*klev, idim3)
77        print *, "Call sequence information: phyredem"  
78        ierr = NF_CREATE(fichnom, NF_CLOBBER, nid)      ierr = nf_def_var(nid, 'longitude', nf_float, 1, idim2, nvarid)
79        IF (ierr.NE.NF_NOERR) THEN      ierr = nf_put_att_text(nid, nvarid, 'title', 32, &
80          write(6,*)' Pb d''ouverture du fichier '//fichnom           'Longitudes de la grille physique')
81          write(6,*)' ierr = ', ierr      ierr = nf_enddef(nid)
82          STOP 1      ierr = nf_put_var_real(nid, nvarid, rlon)
83        ENDIF  
84  c      ierr = nf_redef(nid)
85        ierr = NF_PUT_ATT_TEXT (nid, NF_GLOBAL, "title", 28,      ierr = nf_def_var(nid, 'latitude', nf_float, 1, idim2, nvarid)
86       .                       "Fichier redemmarage physique")      ierr = nf_put_att_text(nid, nvarid, 'title', 31, &
87  c           'Latitudes de la grille physique')
88        ierr = NF_DEF_DIM (nid, "index", length, idim1)      ierr = nf_enddef(nid)
89        ierr = NF_DEF_DIM (nid, "points_physiques", klon, idim2)      ierr = nf_put_var_real(nid, nvarid, rlat)
90        ierr = NF_DEF_DIM (nid, "horizon_vertical", klon*klev, idim3)  
91  c      ! PB ajout du masque terre/mer
92        ierr = NF_ENDDEF(nid)  
93  c      ierr = nf_redef(nid)
94        DO ierr = 1, length      ierr = nf_def_var(nid, 'masque', nf_float, 1, idim2, nvarid)
95           tab_cntrl(ierr) = 0.0      ierr = nf_put_att_text(nid, nvarid, 'title', 16, 'masque terre mer')
96        ENDDO      ierr = nf_enddef(nid)
97        tab_cntrl(1) = dtime      ierr = nf_put_var_real(nid, nvarid, zmasq)
98        tab_cntrl(2) = radpas      ! BP ajout des fraction de chaque sous-surface
99        tab_cntrl(3) = co2_ppm  
100        tab_cntrl(4) = solaire      ! 1. fraction de terre
101        tab_cntrl(5) = iflag_con  
102        tab_cntrl(6) = nbapp_rad      ierr = nf_redef(nid)
103        ierr = nf_def_var(nid, 'FTER', nf_float, 1, idim2, nvarid)
104        IF( cycle_diurne ) tab_cntrl( 7 ) = 1.      ierr = nf_put_att_text(nid, nvarid, 'title', 21, 'fraction de continent')
105        IF(   soil_model ) tab_cntrl( 8 ) = 1.      ierr = nf_enddef(nid)
106        IF(     new_oliq ) tab_cntrl( 9 ) = 1.      ierr = nf_put_var_real(nid, nvarid, pctsrf(1:klon, is_ter))
107        IF(     ok_orodr ) tab_cntrl(10 ) = 1.  
108        IF(     ok_orolf ) tab_cntrl(11 ) = 1.      ! 2. Fraction de glace de terre
109    
110        tab_cntrl(13) = day_end      ierr = nf_redef(nid)
111        tab_cntrl(14) = annee_ref      ierr = nf_def_var(nid, 'FLIC', nf_float, 1, idim2, nvarid)
112        tab_cntrl(15) = itau_phy      ierr = nf_put_att_text(nid, nvarid, 'title', 24, 'fraction glace de terre')
113  c      ierr = nf_enddef(nid)
114        ierr = NF_REDEF (nid)      ierr = nf_put_var_real(nid, nvarid, pctsrf(1:klon, is_lic))
115        ierr = NF_DEF_VAR (nid, "controle", NF_FLOAT, 1, idim1,nvarid)  
116        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 22,      ! 3. fraction ocean
117       .                        "Parametres de controle")  
118        ierr = NF_ENDDEF(nid)      ierr = nf_redef(nid)
119        ierr = NF_PUT_VAR_REAL (nid,nvarid,tab_cntrl)      ierr = nf_def_var(nid, 'FOCE', nf_float, 1, idim2, nvarid)
120  c      ierr = nf_put_att_text(nid, nvarid, 'title', 14, 'fraction ocean')
121        ierr = NF_REDEF (nid)      ierr = nf_enddef(nid)
122        ierr = NF_DEF_VAR (nid, "longitude", NF_FLOAT, 1, idim2,nvarid)      ierr = nf_put_var_real(nid, nvarid, pctsrf(1:klon, is_oce))
123        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 32,  
124       .                        "Longitudes de la grille physique")      ! 4. Fraction glace de mer
125        ierr = NF_ENDDEF(nid)  
126        ierr = NF_PUT_VAR_REAL (nid,nvarid,rlon)      ierr = nf_redef(nid)
127  c      ierr = nf_def_var(nid, 'FSIC', nf_float, 1, idim2, nvarid)
128        ierr = NF_REDEF (nid)      ierr = nf_put_att_text(nid, nvarid, 'title', 18, 'fraction glace mer')
129        ierr = NF_DEF_VAR (nid, "latitude", NF_FLOAT, 1, idim2,nvarid)      ierr = nf_enddef(nid)
130        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 31,      ierr = nf_put_var_real(nid, nvarid, pctsrf(1:klon, is_sic))
131       .                        "Latitudes de la grille physique")  
132        ierr = NF_ENDDEF(nid)  
133        ierr = NF_PUT_VAR_REAL (nid,nvarid,rlat)  
134  c      DO nsrf = 1, nbsrf
135  C PB ajout du masque terre/mer         IF (nsrf<=99) THEN
136  C            WRITE (str2, '(i2.2)') nsrf
137        ierr = NF_REDEF (nid)            ierr = nf_redef(nid)
138        ierr = NF_DEF_VAR (nid, "masque", NF_FLOAT, 1, idim2,nvarid)            ierr = nf_def_var(nid, 'TS'//str2, nf_float, 1, idim2, nvarid)
139        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 16,            ierr = nf_put_att_text(nid, nvarid, 'title', 28, &
140       .                        "masque terre mer")                 'Temperature de surface No.'//str2)
141        ierr = NF_ENDDEF(nid)            ierr = nf_enddef(nid)
142        ierr = NF_PUT_VAR_REAL (nid,nvarid,zmasq)         ELSE
143  c BP ajout des fraction de chaque sous-surface            PRINT *, 'Trop de sous-mailles'
144  C            STOP 1
145  C 1. fraction de terre         END IF
146  C         ierr = nf_put_var_real(nid, nvarid, tsol(1, nsrf))
147        ierr = NF_REDEF (nid)      END DO
148        ierr = NF_DEF_VAR (nid, "FTER", NF_FLOAT, 1, idim2,nvarid)  
149        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 21,      DO nsrf = 1, nbsrf
150       .                        "fraction de continent")         DO isoil = 1, nsoilmx
151        ierr = NF_ENDDEF(nid)            IF (isoil<=99 .AND. nsrf<=99) THEN
152        ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_ter))               WRITE (str7, '(i2.2, "srf", i2.2)') isoil, nsrf
153  C               ierr = nf_redef(nid)
154  C 2. Fraction de glace de terre               ierr = nf_def_var(nid, 'Tsoil'//str7, nf_float, 1, idim2, nvarid)
155  C               ierr = nf_put_att_text(nid, nvarid, 'title', 29, &
156        ierr = NF_REDEF (nid)                    'Temperature du sol No.'//str7)
157        ierr = NF_DEF_VAR (nid, "FLIC", NF_FLOAT, 1, idim2,nvarid)               ierr = nf_enddef(nid)
158        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 24,            ELSE
159       .                        "fraction glace de terre")               PRINT *, 'Trop de couches'
160        ierr = NF_ENDDEF(nid)               STOP 1
161        ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_lic))            END IF
162  C            ierr = nf_put_var_real(nid, nvarid, tsoil(1, isoil, nsrf))
163  C 3. fraction ocean         END DO
164  C      END DO
165        ierr = NF_REDEF (nid)  
166        ierr = NF_DEF_VAR (nid, "FOCE", NF_FLOAT, 1, idim2,nvarid)      !IM "slab" ocean
167        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 14,      ierr = nf_redef(nid)
168       .                        "fraction ocean")      ierr = nf_def_var(nid, 'TSLAB', nf_float, 1, idim2, nvarid)
169        ierr = NF_ENDDEF(nid)      ierr = nf_put_att_text(nid, nvarid, 'title', 33, &
170        ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_oce))           'Ecart de la SST (pour slab-ocean)')
171  C      ierr = nf_enddef(nid)
172  C 4. Fraction glace de mer      ierr = nf_put_var_real(nid, nvarid, tslab)
173  C  
174        ierr = NF_REDEF (nid)      ierr = nf_redef(nid)
175        ierr = NF_DEF_VAR (nid, "FSIC", NF_FLOAT, 1, idim2,nvarid)      ierr = nf_def_var(nid, 'SEAICE', nf_float, 1, idim2, nvarid)
176        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 18,      ierr = nf_put_att_text(nid, nvarid, 'title', 33, &
177       .                        "fraction glace mer")           'Glace de mer kg/m2 (pour slab-ocean)')
178        ierr = NF_ENDDEF(nid)      ierr = nf_enddef(nid)
179        ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_sic))      ierr = nf_put_var_real(nid, nvarid, seaice)
180  C  
181  C      DO nsrf = 1, nbsrf
182  c         IF (nsrf<=99) THEN
183        DO nsrf = 1, nbsrf            WRITE (str2, '(i2.2)') nsrf
184          IF (nsrf.LE.99) THEN            ierr = nf_redef(nid)
185          WRITE(str2,'(i2.2)') nsrf            ierr = nf_def_var(nid, 'QS'//str2, nf_float, 1, idim2, nvarid)
186          ierr = NF_REDEF (nid)            ierr = nf_put_att_text(nid, nvarid, 'title', 25, &
187          ierr = NF_DEF_VAR (nid, "TS"//str2, NF_FLOAT, 1, idim2,nvarid)                 'Humidite de surface No.'//str2)
188          ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,            ierr = nf_enddef(nid)
189       .                        "Temperature de surface No."//str2)         ELSE
190          ierr = NF_ENDDEF(nid)            PRINT *, 'Trop de sous-mailles'
191          ELSE            STOP 1
192          PRINT*, "Trop de sous-mailles"         END IF
193          stop 1         ierr = nf_put_var_real(nid, nvarid, qsurf(1, nsrf))
194          ENDIF      END DO
195          ierr = NF_PUT_VAR_REAL (nid,nvarid,tsol(1,nsrf))  
196        ENDDO      ierr = nf_redef(nid)
197  c      ierr = nf_def_var(nid, 'QSOL', nf_float, 1, idim2, nvarid)
198        DO nsrf = 1, nbsrf      ierr = nf_put_att_text(nid, nvarid, 'title', 20, 'Eau dans le sol (mm)')
199        DO isoil=1, nsoilmx      ierr = nf_enddef(nid)
200          IF (isoil.LE.99 .AND. nsrf.LE.99) THEN      ierr = nf_put_var_real(nid, nvarid, qsol)
201          WRITE(str7,'(i2.2,"srf",i2.2)') isoil,nsrf  
202          ierr = NF_REDEF (nid)      DO nsrf = 1, nbsrf
203          ierr = NF_DEF_VAR (nid, "Tsoil"//str7,NF_FLOAT,1,idim2,nvarid)         IF (nsrf<=99) THEN
204          ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 29,            WRITE (str2, '(i2.2)') nsrf
205       .                        "Temperature du sol No."//str7)            ierr = nf_redef(nid)
206          ierr = NF_ENDDEF(nid)            ierr = nf_def_var(nid, 'ALBE'//str2, nf_float, 1, idim2, nvarid)
207          ELSE            ierr = nf_put_att_text(nid, nvarid, 'title', 23, &
208          PRINT*, "Trop de couches"                 'albedo de surface No.'//str2)
209          stop 1            ierr = nf_enddef(nid)
210          ENDIF         ELSE
211          ierr = NF_PUT_VAR_REAL (nid,nvarid,tsoil(1,isoil,nsrf))            PRINT *, 'Trop de sous-mailles'
212        ENDDO            STOP 1
213        ENDDO         END IF
214  c         ierr = nf_put_var_real(nid, nvarid, albedo(1, nsrf))
215  cIM "slab" ocean      END DO
216        ierr = NF_REDEF (nid)  
217        ierr = NF_DEF_VAR (nid, "TSLAB", NF_FLOAT, 1, idim2,nvarid)      !IM BEG albedo LW
218        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 33,      DO nsrf = 1, nbsrf
219       .                        "Ecart de la SST (pour slab-ocean)")         IF (nsrf<=99) THEN
220        ierr = NF_ENDDEF(nid)            WRITE (str2, '(i2.2)') nsrf
221        ierr = NF_PUT_VAR_REAL (nid,nvarid,tslab)            ierr = nf_redef(nid)
222  c            ierr = nf_def_var(nid, 'ALBLW'//str2, nf_float, 1, idim2, nvarid)
223        ierr = NF_REDEF (nid)            ierr = nf_put_att_text(nid, nvarid, 'title', 23, &
224        ierr = NF_DEF_VAR (nid, "SEAICE", NF_FLOAT, 1, idim2,nvarid)                 'albedo LW de surface No.'//str2)
225        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 33,            ierr = nf_enddef(nid)
226       .                        "Glace de mer kg/m2 (pour slab-ocean)")         ELSE
227        ierr = NF_ENDDEF(nid)            PRINT *, 'Trop de sous-mailles'
228        ierr = NF_PUT_VAR_REAL (nid,nvarid,seaice)            STOP 1
229  c         END IF
230        DO nsrf = 1, nbsrf         ierr = nf_put_var_real(nid, nvarid, alblw(1, nsrf))
231          IF (nsrf.LE.99) THEN      END DO
232          WRITE(str2,'(i2.2)') nsrf      !IM END albedo LW
233          ierr = NF_REDEF (nid)  
234          ierr = NF_DEF_VAR (nid,"QS"//str2,NF_FLOAT,1,idim2,nvarid)      DO nsrf = 1, nbsrf
235          ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 25,         IF (nsrf<=99) THEN
236       .                        "Humidite de surface No."//str2)            WRITE (str2, '(i2.2)') nsrf
237          ierr = NF_ENDDEF(nid)            ierr = nf_redef(nid)
238          ELSE            ierr = nf_def_var(nid, 'EVAP'//str2, nf_float, 1, idim2, nvarid)
239          PRINT*, "Trop de sous-mailles"            ierr = nf_put_att_text(nid, nvarid, 'title', 28, &
240          stop 1                 'Evaporation de surface No.'//str2)
241          ENDIF            ierr = nf_enddef(nid)
242        ierr = NF_PUT_VAR_REAL (nid,nvarid,qsurf(1,nsrf))         ELSE
243        END DO            PRINT *, 'Trop de sous-mailles'
244  C            STOP 1
245        ierr = NF_REDEF (nid)         END IF
246        ierr = NF_DEF_VAR (nid,"QSOL",NF_FLOAT,1,idim2,nvarid)         ierr = nf_put_var_real(nid, nvarid, evap(1, nsrf))
247        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 20,      END DO
248       .    "Eau dans le sol (mm)")  
249        ierr = NF_ENDDEF(nid)  
250        ierr = NF_PUT_VAR_REAL (nid,nvarid,qsol)      DO nsrf = 1, nbsrf
251  c         IF (nsrf<=99) THEN
252        DO nsrf = 1, nbsrf            WRITE (str2, '(i2.2)') nsrf
253          IF (nsrf.LE.99) THEN            ierr = nf_redef(nid)
254          WRITE(str2,'(i2.2)') nsrf            ierr = nf_def_var(nid, 'SNOW'//str2, nf_float, 1, idim2, nvarid)
255          ierr = NF_REDEF (nid)            ierr = nf_put_att_text(nid, nvarid, 'title', 22, &
256          ierr = NF_DEF_VAR (nid,"ALBE"//str2,NF_FLOAT,1,idim2,nvarid)                 'Neige de surface No.'//str2)
257          ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 23,            ierr = nf_enddef(nid)
258       .                        "albedo de surface No."//str2)         ELSE
259          ierr = NF_ENDDEF(nid)            PRINT *, 'Trop de sous-mailles'
260          ELSE            STOP 1
261          PRINT*, "Trop de sous-mailles"         END IF
262          stop 1         ierr = nf_put_var_real(nid, nvarid, snow(1, nsrf))
263          ENDIF      END DO
264        ierr = NF_PUT_VAR_REAL (nid,nvarid,albedo(1,nsrf))  
265        ENDDO  
266        ierr = nf_redef(nid)
267  cIM BEG albedo LW      ierr = nf_def_var(nid, 'RADS', nf_float, 1, idim2, nvarid)
268          DO nsrf = 1, nbsrf      ierr = nf_put_att_text(nid, nvarid, 'title', 28, &
269          IF (nsrf.LE.99) THEN           'Rayonnement net a la surface')
270          WRITE(str2,'(i2.2)') nsrf      ierr = nf_enddef(nid)
271          ierr = NF_REDEF (nid)      ierr = nf_put_var_real(nid, nvarid, radsol)
272          ierr = NF_DEF_VAR (nid,"ALBLW"//str2,NF_FLOAT,1,idim2,nvarid)  
273          ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 23,      ierr = nf_redef(nid)
274       .                        "albedo LW de surface No."//str2)      ierr = nf_def_var(nid, 'solsw', nf_float, 1, idim2, nvarid)
275          ierr = NF_ENDDEF(nid)      ierr = nf_put_att_text(nid, nvarid, 'title', 32, &
276          ELSE           'Rayonnement solaire a la surface')
277          PRINT*, "Trop de sous-mailles"      ierr = nf_enddef(nid)
278          stop 1      ierr = nf_put_var_real(nid, nvarid, solsw)
279          ENDIF  
280        ierr = NF_PUT_VAR_REAL (nid,nvarid,alblw(1,nsrf))      ierr = nf_redef(nid)
281        ENDDO      ierr = nf_def_var(nid, 'sollw', nf_float, 1, idim2, nvarid)
282  cIM END albedo LW      ierr = nf_put_att_text(nid, nvarid, 'title', 27, &
283  c           'Rayonnement IF a la surface')
284        DO nsrf = 1, nbsrf      ierr = nf_enddef(nid)
285          IF (nsrf.LE.99) THEN      ierr = nf_put_var_real(nid, nvarid, sollw)
286          WRITE(str2,'(i2.2)') nsrf  
287          ierr = NF_REDEF (nid)      ierr = nf_redef(nid)
288          ierr = NF_DEF_VAR (nid,"EVAP"//str2,NF_FLOAT,1,idim2,nvarid)      ierr = nf_def_var(nid, 'fder', nf_float, 1, idim2, nvarid)
289          ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,      ierr = nf_put_att_text(nid, nvarid, 'title', 14, 'Derive de flux')
290       .                        "Evaporation de surface No."//str2)      ierr = nf_enddef(nid)
291          ierr = NF_ENDDEF(nid)      ierr = nf_put_var_real(nid, nvarid, fder)
292          ELSE  
293          PRINT*, "Trop de sous-mailles"      ierr = nf_redef(nid)
294          stop 1      ierr = nf_def_var(nid, 'rain_f', nf_float, 1, idim2, nvarid)
295          ENDIF      ierr = nf_put_att_text(nid, nvarid, 'title', 21, 'precipitation liquide')
296        ierr = NF_PUT_VAR_REAL (nid,nvarid,evap(1,nsrf))      ierr = nf_enddef(nid)
297        ENDDO      ierr = nf_put_var_real(nid, nvarid, rain_fall)
298    
299  c      ierr = nf_redef(nid)
300        DO nsrf = 1, nbsrf      ierr = nf_def_var(nid, 'snow_f', nf_float, 1, idim2, nvarid)
301          IF (nsrf.LE.99) THEN      ierr = nf_put_att_text(nid, nvarid, 'title', 20, 'precipitation solide')
302          WRITE(str2,'(i2.2)') nsrf      ierr = nf_enddef(nid)
303          ierr = NF_REDEF (nid)      ierr = nf_put_var_real(nid, nvarid, snow_fall)
304          ierr = NF_DEF_VAR (nid,"SNOW"//str2,NF_FLOAT,1,idim2,nvarid)  
305          ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 22,      DO nsrf = 1, nbsrf
306       .                        "Neige de surface No."//str2)         IF (nsrf<=99) THEN
307          ierr = NF_ENDDEF(nid)            WRITE (str2, '(i2.2)') nsrf
308          ELSE            ierr = nf_redef(nid)
309          PRINT*, "Trop de sous-mailles"            ierr = nf_def_var(nid, 'RUG'//str2, nf_float, 1, idim2, nvarid)
310          stop 1            ierr = nf_put_att_text(nid, nvarid, 'title', 23, &
311          ENDIF                 'rugosite de surface No.'//str2)
312        ierr = NF_PUT_VAR_REAL (nid,nvarid,snow(1,nsrf))            ierr = nf_enddef(nid)
313        ENDDO         ELSE
314              PRINT *, 'Trop de sous-mailles'
315  c            STOP 1
316        ierr = NF_REDEF (nid)         END IF
317        ierr = NF_DEF_VAR (nid, "RADS", NF_FLOAT, 1, idim2,nvarid)         ierr = nf_put_var_real(nid, nvarid, frugs(1, nsrf))
318        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,      END DO
319       .                        "Rayonnement net a la surface")  
320        ierr = NF_ENDDEF(nid)      DO nsrf = 1, nbsrf
321        ierr = NF_PUT_VAR_REAL (nid,nvarid,radsol)         IF (nsrf<=99) THEN
322  c            WRITE (str2, '(i2.2)') nsrf
323        ierr = NF_REDEF (nid)            ierr = nf_redef(nid)
324        ierr = NF_DEF_VAR (nid, "solsw", NF_FLOAT, 1, idim2,nvarid)            ierr = nf_def_var(nid, 'AGESNO'//str2, nf_float, 1, idim2, nvarid)
325        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 32,            ierr = nf_put_att_text(nid, nvarid, 'title', 15, &
326       .                        "Rayonnement solaire a la surface")                 'Age de la neige surface No.'//str2)
327        ierr = NF_ENDDEF(nid)            ierr = nf_enddef(nid)
328        ierr = NF_PUT_VAR_REAL (nid,nvarid,solsw)         ELSE
329  c            PRINT *, 'Trop de sous-mailles'
330        ierr = NF_REDEF (nid)            STOP 1
331        ierr = NF_DEF_VAR (nid, "sollw", NF_FLOAT, 1, idim2,nvarid)         END IF
332        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 27,         ierr = nf_put_var_real(nid, nvarid, agesno(1, nsrf))
333       .                        "Rayonnement IF a la surface")      END DO
334        ierr = NF_ENDDEF(nid)  
335        ierr = NF_PUT_VAR_REAL (nid,nvarid,sollw)      ierr = nf_redef(nid)
336  c      ierr = nf_def_var(nid, 'ZMEA', nf_float, 1, idim2, nvarid)
337        ierr = NF_REDEF (nid)      ierr = nf_enddef(nid)
338        ierr = NF_DEF_VAR (nid, "fder", NF_FLOAT, 1, idim2,nvarid)      ierr = nf_put_var_real(nid, nvarid, zmea)
339        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 14,  
340       .                        "Derive de flux")      ierr = nf_redef(nid)
341        ierr = NF_ENDDEF(nid)      ierr = nf_def_var(nid, 'ZSTD', nf_float, 1, idim2, nvarid)
342        ierr = NF_PUT_VAR_REAL (nid,nvarid,fder)      ierr = nf_enddef(nid)
343  c      ierr = nf_put_var_real(nid, nvarid, zstd)
344        ierr = NF_REDEF (nid)      ierr = nf_redef(nid)
345        ierr = NF_DEF_VAR (nid, "rain_f", NF_FLOAT, 1, idim2,nvarid)      ierr = nf_def_var(nid, 'ZSIG', nf_float, 1, idim2, nvarid)
346        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 21,      ierr = nf_enddef(nid)
347       .                        "precipitation liquide")      ierr = nf_put_var_real(nid, nvarid, zsig)
348        ierr = NF_ENDDEF(nid)      ierr = nf_redef(nid)
349        ierr = NF_PUT_VAR_REAL (nid,nvarid,rain_fall)      ierr = nf_def_var(nid, 'ZGAM', nf_float, 1, idim2, nvarid)
350  c      ierr = nf_enddef(nid)
351        ierr = NF_REDEF (nid)      ierr = nf_put_var_real(nid, nvarid, zgam)
352        ierr = NF_DEF_VAR (nid, "snow_f", NF_FLOAT, 1, idim2,nvarid)      ierr = nf_redef(nid)
353        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 20,      ierr = nf_def_var(nid, 'ZTHE', nf_float, 1, idim2, nvarid)
354       .                        "precipitation solide")      ierr = nf_enddef(nid)
355        ierr = NF_ENDDEF(nid)      ierr = nf_put_var_real(nid, nvarid, zthe)
356        ierr = NF_PUT_VAR_REAL (nid,nvarid,snow_fall)      ierr = nf_redef(nid)
357  c      ierr = nf_def_var(nid, 'ZPIC', nf_float, 1, idim2, nvarid)
358        DO nsrf = 1, nbsrf      ierr = nf_enddef(nid)
359          IF (nsrf.LE.99) THEN      ierr = nf_put_var_real(nid, nvarid, zpic)
360          WRITE(str2,'(i2.2)') nsrf      ierr = nf_redef(nid)
361          ierr = NF_REDEF (nid)      ierr = nf_def_var(nid, 'ZVAL', nf_float, 1, idim2, nvarid)
362          ierr = NF_DEF_VAR (nid,"RUG"//str2,NF_FLOAT,1,idim2,nvarid)      ierr = nf_enddef(nid)
363          ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 23,      ierr = nf_put_var_real(nid, nvarid, zval)
364       .                        "rugosite de surface No."//str2)  
365          ierr = NF_ENDDEF(nid)      ierr = nf_redef(nid)
366          ELSE      ierr = nf_def_var(nid, 'TANCIEN', nf_float, 1, idim3, nvarid)
367          PRINT*, "Trop de sous-mailles"      ierr = nf_enddef(nid)
368          stop 1      ierr = nf_put_var_real(nid, nvarid, t_ancien)
369          ENDIF  
370        ierr = NF_PUT_VAR_REAL (nid,nvarid,frugs(1,nsrf))      ierr = nf_redef(nid)
371        ENDDO      ierr = nf_def_var(nid, 'QANCIEN', nf_float, 1, idim3, nvarid)
372  c      ierr = nf_enddef(nid)
373        DO nsrf = 1, nbsrf      ierr = nf_put_var_real(nid, nvarid, q_ancien)
374          IF (nsrf.LE.99) THEN  
375              WRITE(str2,'(i2.2)') nsrf      ierr = nf_redef(nid)
376              ierr = NF_REDEF (nid)      ierr = nf_def_var(nid, 'RUGMER', nf_float, 1, idim2, nvarid)
377              ierr = NF_DEF_VAR (nid,"AGESNO"//str2,NF_FLOAT,1,idim2      ierr = nf_put_att_text(nid, nvarid, 'title', 28, &
378       $          ,nvarid)           'Longueur de rugosite sur mer')
379              ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 15,      ierr = nf_enddef(nid)
380       .                        "Age de la neige surface No."//str2)      ierr = nf_put_var_real(nid, nvarid, frugs(1, is_oce))
381              ierr = NF_ENDDEF(nid)  
382          ELSE      ierr = nf_redef(nid)
383              PRINT*, "Trop de sous-mailles"      ierr = nf_def_var(nid, 'CLWCON', nf_float, 1, idim2, nvarid)
384              stop 1      ierr = nf_put_att_text(nid, nvarid, 'title', 28, 'Eau liquide convective')
385          ENDIF      ierr = nf_enddef(nid)
386        ierr = NF_PUT_VAR_REAL (nid,nvarid,agesno(1,nsrf))      ierr = nf_put_var_real(nid, nvarid, clwcon)
387        ENDDO  
388  c      ierr = nf_redef(nid)
389        ierr = NF_REDEF (nid)      ierr = nf_def_var(nid, 'RNEBCON', nf_float, 1, idim2, nvarid)
390        ierr = NF_DEF_VAR (nid, "ZMEA", NF_FLOAT, 1, idim2,nvarid)      ierr = nf_put_att_text(nid, nvarid, 'title', 28, 'Nebulosite convective')
391        ierr = NF_ENDDEF(nid)      ierr = nf_enddef(nid)
392        ierr = NF_PUT_VAR_REAL (nid,nvarid,zmea)      ierr = nf_put_var_real(nid, nvarid, rnebcon)
393  c  
394        ierr = NF_REDEF (nid)      ierr = nf_redef(nid)
395        ierr = NF_DEF_VAR (nid, "ZSTD", NF_FLOAT, 1, idim2,nvarid)      ierr = nf_def_var(nid, 'RATQS', nf_float, 1, idim2, nvarid)
396        ierr = NF_ENDDEF(nid)      ierr = nf_put_att_text(nid, nvarid, 'title', 5, 'Ratqs')
397        ierr = NF_PUT_VAR_REAL (nid,nvarid,zstd)      ierr = nf_enddef(nid)
398        ierr = NF_REDEF (nid)      ierr = nf_put_var_real(nid, nvarid, ratqs)
399        ierr = NF_DEF_VAR (nid, "ZSIG", NF_FLOAT, 1, idim2,nvarid)  
400        ierr = NF_ENDDEF(nid)      ! run_off_lic_0
401        ierr = NF_PUT_VAR_REAL (nid,nvarid,zsig)  
402        ierr = NF_REDEF (nid)      ierr = nf_redef(nid)
403        ierr = NF_DEF_VAR (nid, "ZGAM", NF_FLOAT, 1, idim2,nvarid)      ierr = nf_def_var(nid, 'RUNOFFLIC0', nf_float, 1, idim2, nvarid)
404        ierr = NF_ENDDEF(nid)      ierr = nf_put_att_text(nid, nvarid, 'title', 10, 'Runofflic0')
405        ierr = NF_PUT_VAR_REAL (nid,nvarid,zgam)      ierr = nf_enddef(nid)
406        ierr = NF_REDEF (nid)      ierr = nf_put_var_real(nid, nvarid, run_off_lic_0)
407        ierr = NF_DEF_VAR (nid, "ZTHE", NF_FLOAT, 1, idim2,nvarid)  
408        ierr = NF_ENDDEF(nid)  
409        ierr = NF_PUT_VAR_REAL (nid,nvarid,zthe)      ierr = nf_close(nid)
410        ierr = NF_REDEF (nid)  
411        ierr = NF_DEF_VAR (nid, "ZPIC", NF_FLOAT, 1, idim2,nvarid)    END SUBROUTINE phyredem
412        ierr = NF_ENDDEF(nid)  
413        ierr = NF_PUT_VAR_REAL (nid,nvarid,zpic)  end module phyredem_m
       ierr = NF_REDEF (nid)  
       ierr = NF_DEF_VAR (nid, "ZVAL", NF_FLOAT, 1, idim2,nvarid)  
       ierr = NF_ENDDEF(nid)  
       ierr = NF_PUT_VAR_REAL (nid,nvarid,zval)  
       ierr = NF_REDEF (nid)  
       ierr = NF_DEF_VAR (nid, "RUGSREL", NF_FLOAT, 1, idim2,nvarid)  
       ierr = NF_ENDDEF(nid)  
       ierr = NF_PUT_VAR_REAL (nid,nvarid,rugsrel)  
 c  
       ierr = NF_REDEF (nid)  
       ierr = NF_DEF_VAR (nid, "TANCIEN", NF_FLOAT, 1, idim3,nvarid)  
       ierr = NF_ENDDEF(nid)  
       ierr = NF_PUT_VAR_REAL (nid,nvarid,t_ancien)  
 c  
       ierr = NF_REDEF (nid)  
       ierr = NF_DEF_VAR (nid, "QANCIEN", NF_FLOAT, 1, idim3,nvarid)  
       ierr = NF_ENDDEF(nid)  
       ierr = NF_PUT_VAR_REAL (nid,nvarid,q_ancien)  
 c  
       ierr = NF_REDEF (nid)  
       ierr = NF_DEF_VAR (nid, "RUGMER", NF_FLOAT, 1, idim2,nvarid)  
       ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,  
      .                        "Longueur de rugosite sur mer")  
       ierr = NF_ENDDEF(nid)  
       ierr = NF_PUT_VAR_REAL (nid,nvarid,frugs(1,is_oce))  
 c  
       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)  
 c  
       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)  
 c  
       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)  
 c  
 c run_off_lic_0  
 c  
       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)  
 c  
 c  
       ierr = NF_CLOSE(nid)  
 c  
       RETURN  
       END  

Legend:
Removed from v.3  
changed lines
  Added in v.15

  ViewVC Help
Powered by ViewVC 1.1.21