source: LMDZ.3.3/branches/rel-LF/libf/phylmd/phyredem.F @ 360

Last change on this file since 360 was 352, checked in by lmdzadmin, 23 years ago

2 changements pour les fichiers histoire:

  • utilisation de l'entree "rectilineaire" de IOIPSL pour ne plus avoir a lancer ncregular a chaque fois
  • le calendrier des fichiers histoire est maintenant base sur la date d'initialisation de la simulation plutot que sur la date de depart du job en cours

LF

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 19.5 KB
RevLine 
[179]1c $Header$
2c
[2]3      SUBROUTINE phyredem (fichnom,dtime,radpas,co2_ppm,solaire,
[98]4     .           rlat,rlon, pctsrf,tsol,tsoil,deltat,qsol,snow,
5     .           albedo, evap, rain_fall, snow_fall,
[151]6     .           solsw, sollw,fder,
[112]7     .           radsol,frugs,agesno,
[45]8     .           zmea,zstd,zsig,zgam,zthe,zpic,zval,rugsrel,
9     .           t_ancien, q_ancien)
[2]10      IMPLICIT none
11c======================================================================
12c Auteur(s) Z.X. Li (LMD/CNRS) date: 19930818
13c Objet: Ecriture de l'etat de redemarrage pour la physique
14c======================================================================
15#include "dimensions.h"
16#include "dimphy.h"
17#include "netcdf.inc"
18#include "indicesol.h"
19#include "dimsoil.h"
20#include "clesphys.h"
21#include "control.h"
[51]22#include "temps.h"
[2]23c======================================================================
24      CHARACTER*(*) fichnom
25      REAL dtime
26      INTEGER radpas
27      REAL rlat(klon), rlon(klon)
28      REAL co2_ppm
29      REAL solaire
30      REAL tsol(klon,nbsrf)
31      REAL tsoil(klon,nsoilmx,nbsrf)
32      REAL deltat(klon)
33      REAL qsol(klon,nbsrf)
34      REAL snow(klon,nbsrf)
[98]35      REAL albedo(klon,nbsrf)
36      REAL evap(klon,nbsrf)
37      REAL rain_fall(klon)
38      REAL snow_fall(klon)
39      real solsw(klon)
40      real sollw(klon)
[151]41      real fder(klon)
[2]42      REAL radsol(klon)
[112]43      REAL frugs(klon,nbsrf)
[258]44      REAL agesno(klon,nbsrf)
[2]45      REAL zmea(klon)
46      REAL zstd(klon)
47      REAL zsig(klon)
48      REAL zgam(klon)
49      REAL zthe(klon)
50      REAL zpic(klon)
51      REAL zval(klon)
52      REAL rugsrel(klon)
[98]53      REAL pctsrf(klon, nbsrf)
[45]54      REAL t_ancien(klon,klev), q_ancien(klon,klev)
[2]55c
[45]56      INTEGER nid, nvarid, idim1, idim2, idim3
[2]57      INTEGER ierr
58      INTEGER length
59      PARAMETER (length=100)
60      REAL tab_cntrl(length)
61c
62      INTEGER isoil, nsrf
63      CHARACTER*7 str7
64      CHARACTER*2 str2
65c
66      ierr = NF_CREATE(fichnom, NF_CLOBBER, nid)
67      IF (ierr.NE.NF_NOERR) THEN
68        write(6,*)' Pb d''ouverture du fichier '//fichnom
69        write(6,*)' ierr = ', ierr
70        CALL ABORT
71      ENDIF
72c
73      ierr = NF_PUT_ATT_TEXT (nid, NF_GLOBAL, "title", 28,
74     .                       "Fichier redemmarage physique")
75c
76      ierr = NF_DEF_DIM (nid, "index", length, idim1)
77      ierr = NF_DEF_DIM (nid, "points_physiques", klon, idim2)
[45]78      ierr = NF_DEF_DIM (nid, "horizon_vertical", klon*klev, idim3)
[2]79c
80      ierr = NF_ENDDEF(nid)
81c
82      DO ierr = 1, length
83         tab_cntrl(ierr) = 0.0
84      ENDDO
85      tab_cntrl(1) = dtime
86      tab_cntrl(2) = radpas
87      tab_cntrl(3) = co2_ppm
88      tab_cntrl(4) = solaire
89      tab_cntrl(5) = iflag_con
90      tab_cntrl(6) = nbapp_rad
91
92      IF( cycle_diurne ) tab_cntrl( 7 ) = 1.
93      IF(   soil_model ) tab_cntrl( 8 ) = 1.
94      IF(     new_oliq ) tab_cntrl( 9 ) = 1.
95      IF(     ok_orodr ) tab_cntrl(10 ) = 1.
96      IF(     ok_orolf ) tab_cntrl(11 ) = 1.
97
98      tab_cntrl(13) = dayref
99      tab_cntrl(14) = anneeref
[51]100      tab_cntrl(13) = day_end
[352]101      tab_cntrl(14) = annee_ref
102      tab_cntrl(15) = itau_phy
[2]103c
104      ierr = NF_REDEF (nid)
[352]105#ifdef NC_DOUBLE
106      ierr = NF_DEF_VAR (nid, "controle", NF_DOUBLE, 1, idim1,nvarid)
107#else
[2]108      ierr = NF_DEF_VAR (nid, "controle", NF_FLOAT, 1, idim1,nvarid)
[352]109#endif
[2]110      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 22,
111     .                        "Parametres de controle")
112      ierr = NF_ENDDEF(nid)
113#ifdef NC_DOUBLE
114      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tab_cntrl)
115#else
116      ierr = NF_PUT_VAR_REAL (nid,nvarid,tab_cntrl)
117#endif
118c
119      ierr = NF_REDEF (nid)
[352]120#ifdef NC_DOUBLE
121      ierr = NF_DEF_VAR (nid, "longitude", NF_DOUBLE, 1, idim2,nvarid)
122#else
[2]123      ierr = NF_DEF_VAR (nid, "longitude", NF_FLOAT, 1, idim2,nvarid)
[352]124#endif
[2]125      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 32,
126     .                        "Longitudes de la grille physique")
127      ierr = NF_ENDDEF(nid)
128#ifdef NC_DOUBLE
129      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rlon)
130#else
131      ierr = NF_PUT_VAR_REAL (nid,nvarid,rlon)
132#endif
133c
134      ierr = NF_REDEF (nid)
[352]135#ifdef NC_DOUBLE
136      ierr = NF_DEF_VAR (nid, "latitude", NF_DOUBLE, 1, idim2,nvarid)
137#else
[2]138      ierr = NF_DEF_VAR (nid, "latitude", NF_FLOAT, 1, idim2,nvarid)
[352]139#endif
[2]140      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 31,
141     .                        "Latitudes de la grille physique")
142      ierr = NF_ENDDEF(nid)
143#ifdef NC_DOUBLE
144      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rlat)
145#else
146      ierr = NF_PUT_VAR_REAL (nid,nvarid,rlat)
147#endif
148c
[98]149C PB ajout du masque terre/mer
150C
151      ierr = NF_REDEF (nid)
[352]152#ifdef NC_DOUBLE
153      ierr = NF_DEF_VAR (nid, "masque", NF_DOUBLE, 1, idim2,nvarid)
154#else
[98]155      ierr = NF_DEF_VAR (nid, "masque", NF_FLOAT, 1, idim2,nvarid)
[352]156#endif
[98]157      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 16,
158     .                        "masque terre mer")
159      ierr = NF_ENDDEF(nid)
160#ifdef NC_DOUBLE
161      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zmasq)
162#else
163      ierr = NF_PUT_VAR_REAL (nid,nvarid,zmasq)
164#endif     
165c BP ajout des fraction de chaque sous-surface
166C
167C 1. fraction de terre
168C
169      ierr = NF_REDEF (nid)
[352]170#ifdef NC_DOUBLE
171      ierr = NF_DEF_VAR (nid, "FTER", NF_DOUBLE, 1, idim2,nvarid)
172#else
[98]173      ierr = NF_DEF_VAR (nid, "FTER", NF_FLOAT, 1, idim2,nvarid)
[352]174#endif
[98]175      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 21,
176     .                        "fraction de continent")
177      ierr = NF_ENDDEF(nid)
178#ifdef NC_DOUBLE
179      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon, is_ter))
180#else
181      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_ter))
182#endif
183C
184C 2. Fraction de glace de terre
185C
186      ierr = NF_REDEF (nid)
[352]187#ifdef NC_DOUBLE
188      ierr = NF_DEF_VAR (nid, "FLIC", NF_DOUBLE, 1, idim2,nvarid)
189#else
[98]190      ierr = NF_DEF_VAR (nid, "FLIC", NF_FLOAT, 1, idim2,nvarid)
[352]191#endif
[98]192      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 24,
193     .                        "fraction glace de terre")
194      ierr = NF_ENDDEF(nid)
195#ifdef NC_DOUBLE
196      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon,is_lic))
197#else
198      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_lic))
199#endif
200C
201C 3. fraction ocean
202C
203      ierr = NF_REDEF (nid)
[352]204#ifdef NC_DOUBLE
205      ierr = NF_DEF_VAR (nid, "FOCE", NF_DOUBLE, 1, idim2,nvarid)
206#else
[98]207      ierr = NF_DEF_VAR (nid, "FOCE", NF_FLOAT, 1, idim2,nvarid)
[352]208#endif
[98]209      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 14,
210     .                        "fraction ocean")
211      ierr = NF_ENDDEF(nid)
212#ifdef NC_DOUBLE
213      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon, is_oce))
214#else
215      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_oce))
216#endif
217C
218C 4. Fraction glace de mer
219C
220      ierr = NF_REDEF (nid)
[352]221#ifdef NC_DOUBLE
222      ierr = NF_DEF_VAR (nid, "FSIC", NF_DOUBLE, 1, idim2,nvarid)
223#else
[98]224      ierr = NF_DEF_VAR (nid, "FSIC", NF_FLOAT, 1, idim2,nvarid)
[352]225#endif
[98]226      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 18,
227     .                        "fraction glace mer")
228      ierr = NF_ENDDEF(nid)
229#ifdef NC_DOUBLE
230      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon, is_sic))
231#else
232      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_sic))
233#endif
234C
235C
[2]236c
237      DO nsrf = 1, nbsrf
238        IF (nsrf.LE.99) THEN
239        WRITE(str2,'(i2.2)') nsrf
240        ierr = NF_REDEF (nid)
[352]241#ifdef NC_DOUBLE
242        ierr = NF_DEF_VAR (nid, "TS"//str2, NF_DOUBLE, 1, idim2,nvarid)
243#else
[2]244        ierr = NF_DEF_VAR (nid, "TS"//str2, NF_FLOAT, 1, idim2,nvarid)
[352]245#endif
[2]246        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,
247     .                        "Temperature de surface No."//str2)
248        ierr = NF_ENDDEF(nid)
249        ELSE
250        PRINT*, "Trop de sous-mailles"
251        CALL abort
252        ENDIF
253#ifdef NC_DOUBLE
254        ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tsol(1,nsrf))
255#else
256        ierr = NF_PUT_VAR_REAL (nid,nvarid,tsol(1,nsrf))
257#endif
258      ENDDO
259c
260      DO nsrf = 1, nbsrf
261      DO isoil=1, nsoilmx
262        IF (isoil.LE.99 .AND. nsrf.LE.99) THEN
263        WRITE(str7,'(i2.2,"srf",i2.2)') isoil,nsrf
264        ierr = NF_REDEF (nid)
[352]265#ifdef NC_DOUBLE
266        ierr = NF_DEF_VAR (nid, "Tsoil"//str7,NF_DOUBLE,1,idim2,nvarid)
267#else
[2]268        ierr = NF_DEF_VAR (nid, "Tsoil"//str7,NF_FLOAT,1,idim2,nvarid)
[352]269#endif
[2]270        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 29,
271     .                        "Temperature du sol No."//str7)
272        ierr = NF_ENDDEF(nid)
273        ELSE
274        PRINT*, "Trop de couches"
275        CALL abort
276        ENDIF
277#ifdef NC_DOUBLE
278        ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tsoil(1,isoil,nsrf))
279#else
280        ierr = NF_PUT_VAR_REAL (nid,nvarid,tsoil(1,isoil,nsrf))
281#endif
282      ENDDO
283      ENDDO
284c
285c
286      ierr = NF_REDEF (nid)
[352]287#ifdef NC_DOUBLE
288      ierr = NF_DEF_VAR (nid, "DELTAT", NF_DOUBLE, 1, idim2,nvarid)
289#else
[2]290      ierr = NF_DEF_VAR (nid, "DELTAT", NF_FLOAT, 1, idim2,nvarid)
[352]291#endif
[2]292      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 33,
293     .                        "Ecart de la SST (pour slab-ocean)")
294      ierr = NF_ENDDEF(nid)
295#ifdef NC_DOUBLE
296      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,deltat)
297#else
298      ierr = NF_PUT_VAR_REAL (nid,nvarid,deltat)
299#endif
300c
301      DO nsrf = 1, nbsrf
302        IF (nsrf.LE.99) THEN
303        WRITE(str2,'(i2.2)') nsrf
304        ierr = NF_REDEF (nid)
[352]305#ifdef NC_DOUBLE
306        ierr = NF_DEF_VAR (nid,"QS"//str2,NF_DOUBLE,1,idim2,nvarid)
307#else
[2]308        ierr = NF_DEF_VAR (nid,"QS"//str2,NF_FLOAT,1,idim2,nvarid)
[352]309#endif
[2]310        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 25,
311     .                        "Humidite de surface No."//str2)
312        ierr = NF_ENDDEF(nid)
313        ELSE
314        PRINT*, "Trop de sous-mailles"
315        CALL abort
316        ENDIF
317#ifdef NC_DOUBLE
318      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,qsol(1,nsrf))
319#else
320      ierr = NF_PUT_VAR_REAL (nid,nvarid,qsol(1,nsrf))
321#endif
322      ENDDO
323c
324      DO nsrf = 1, nbsrf
325        IF (nsrf.LE.99) THEN
326        WRITE(str2,'(i2.2)') nsrf
327        ierr = NF_REDEF (nid)
[352]328#ifdef NC_DOUBLE
329        ierr = NF_DEF_VAR (nid,"ALBE"//str2,NF_DOUBLE,1,idim2,nvarid)
330#else
[98]331        ierr = NF_DEF_VAR (nid,"ALBE"//str2,NF_FLOAT,1,idim2,nvarid)
[352]332#endif
[98]333        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 23,
334     .                        "albedo de surface No."//str2)
335        ierr = NF_ENDDEF(nid)
336        ELSE
337        PRINT*, "Trop de sous-mailles"
338        CALL abort
339        ENDIF
340#ifdef NC_DOUBLE
341      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,albedo(1,nsrf))
342#else
343      ierr = NF_PUT_VAR_REAL (nid,nvarid,albedo(1,nsrf))
344#endif
345      ENDDO
346c
347      DO nsrf = 1, nbsrf
348        IF (nsrf.LE.99) THEN
349        WRITE(str2,'(i2.2)') nsrf
350        ierr = NF_REDEF (nid)
[352]351#ifdef NC_DOUBLE
352        ierr = NF_DEF_VAR (nid,"EVAP"//str2,NF_DOUBLE,1,idim2,nvarid)
353#else
[98]354        ierr = NF_DEF_VAR (nid,"EVAP"//str2,NF_FLOAT,1,idim2,nvarid)
[352]355#endif
[98]356        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,
357     .                        "Evaporation de surface No."//str2)
358        ierr = NF_ENDDEF(nid)
359        ELSE
360        PRINT*, "Trop de sous-mailles"
361        CALL abort
362        ENDIF
363#ifdef NC_DOUBLE
364      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,evap(1,nsrf))
365#else
366      ierr = NF_PUT_VAR_REAL (nid,nvarid,evap(1,nsrf))
367#endif
368      ENDDO
369
370c
371      DO nsrf = 1, nbsrf
372        IF (nsrf.LE.99) THEN
373        WRITE(str2,'(i2.2)') nsrf
374        ierr = NF_REDEF (nid)
[352]375#ifdef NC_DOUBLE
376        ierr = NF_DEF_VAR (nid,"SNOW"//str2,NF_DOUBLE,1,idim2,nvarid)
377#else
[2]378        ierr = NF_DEF_VAR (nid,"SNOW"//str2,NF_FLOAT,1,idim2,nvarid)
[352]379#endif
[2]380        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 22,
381     .                        "Neige de surface No."//str2)
382        ierr = NF_ENDDEF(nid)
383        ELSE
384        PRINT*, "Trop de sous-mailles"
385        CALL abort
386        ENDIF
387#ifdef NC_DOUBLE
388      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,snow(1,nsrf))
389#else
390      ierr = NF_PUT_VAR_REAL (nid,nvarid,snow(1,nsrf))
391#endif
392      ENDDO
[98]393
[2]394c
395      ierr = NF_REDEF (nid)
[352]396#ifdef NC_DOUBLE
397      ierr = NF_DEF_VAR (nid, "RADS", NF_DOUBLE, 1, idim2,nvarid)
398#else
[2]399      ierr = NF_DEF_VAR (nid, "RADS", NF_FLOAT, 1, idim2,nvarid)
[352]400#endif
[2]401      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,
402     .                        "Rayonnement net a la surface")
403      ierr = NF_ENDDEF(nid)
404#ifdef NC_DOUBLE
405      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,radsol)
406#else
407      ierr = NF_PUT_VAR_REAL (nid,nvarid,radsol)
408#endif
409c
410      ierr = NF_REDEF (nid)
[352]411#ifdef NC_DOUBLE
412      ierr = NF_DEF_VAR (nid, "solsw", NF_DOUBLE, 1, idim2,nvarid)
413#else
[98]414      ierr = NF_DEF_VAR (nid, "solsw", NF_FLOAT, 1, idim2,nvarid)
[352]415#endif
[98]416      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 32,
417     .                        "Rayonnement solaire a la surface")
418      ierr = NF_ENDDEF(nid)
419#ifdef NC_DOUBLE
420      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,solsw)
421#else
422      ierr = NF_PUT_VAR_REAL (nid,nvarid,solsw)
423#endif
424c
425      ierr = NF_REDEF (nid)
[352]426#ifdef NC_DOUBLE
427      ierr = NF_DEF_VAR (nid, "sollw", NF_DOUBLE, 1, idim2,nvarid)
428#else
[98]429      ierr = NF_DEF_VAR (nid, "sollw", NF_FLOAT, 1, idim2,nvarid)
[352]430#endif
[98]431      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 27,
432     .                        "Rayonnement IF a la surface")
433      ierr = NF_ENDDEF(nid)
434#ifdef NC_DOUBLE
435      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,sollw)
436#else
437      ierr = NF_PUT_VAR_REAL (nid,nvarid,sollw)
438#endif
439c
440      ierr = NF_REDEF (nid)
[352]441#ifdef NC_DOUBLE
442      ierr = NF_DEF_VAR (nid, "fder", NF_DOUBLE, 1, idim2,nvarid)
443#else
[151]444      ierr = NF_DEF_VAR (nid, "fder", NF_FLOAT, 1, idim2,nvarid)
[352]445#endif
[151]446      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 14,
447     .                        "Derive de flux")
448      ierr = NF_ENDDEF(nid)
449#ifdef NC_DOUBLE
450      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,fder)
451#else
452      ierr = NF_PUT_VAR_REAL (nid,nvarid,fder)
453#endif
454c
455      ierr = NF_REDEF (nid)
[352]456#ifdef NC_DOUBLE
457      ierr = NF_DEF_VAR (nid, "rain_f", NF_DOUBLE, 1, idim2,nvarid)
458#else
[98]459      ierr = NF_DEF_VAR (nid, "rain_f", NF_FLOAT, 1, idim2,nvarid)
[352]460#endif
[98]461      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 21,
462     .                        "precipitation liquide")
463      ierr = NF_ENDDEF(nid)
464#ifdef NC_DOUBLE
465      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rain_fall)
466#else
467      ierr = NF_PUT_VAR_REAL (nid,nvarid,rain_fall)
468#endif
469c
470      ierr = NF_REDEF (nid)
[352]471#ifdef NC_DOUBLE
472      ierr = NF_DEF_VAR (nid, "snow_f", NF_DOUBLE, 1, idim2,nvarid)
473#else
[98]474      ierr = NF_DEF_VAR (nid, "snow_f", NF_FLOAT, 1, idim2,nvarid)
[352]475#endif
[98]476      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 20,
477     .                        "precipitation solide")
478      ierr = NF_ENDDEF(nid)
479#ifdef NC_DOUBLE
480      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,snow_fall)
481#else
482      ierr = NF_PUT_VAR_REAL (nid,nvarid,snow_fall)
483#endif
484c
[112]485      DO nsrf = 1, nbsrf
486        IF (nsrf.LE.99) THEN
487        WRITE(str2,'(i2.2)') nsrf
488        ierr = NF_REDEF (nid)
[352]489#ifdef NC_DOUBLE
490        ierr = NF_DEF_VAR (nid,"RUG"//str2,NF_DOUBLE,1,idim2,nvarid)
491#else
[112]492        ierr = NF_DEF_VAR (nid,"RUG"//str2,NF_FLOAT,1,idim2,nvarid)
[352]493#endif
[112]494        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 23,
495     .                        "rugosite de surface No."//str2)
496        ierr = NF_ENDDEF(nid)
497        ELSE
498        PRINT*, "Trop de sous-mailles"
499        CALL abort
500        ENDIF
[2]501#ifdef NC_DOUBLE
[112]502      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,frugs(1,nsrf))
[2]503#else
[112]504      ierr = NF_PUT_VAR_REAL (nid,nvarid,frugs(1,nsrf))
[2]505#endif
[112]506      ENDDO
[2]507c
[258]508      DO nsrf = 1, nbsrf
509        IF (nsrf.LE.99) THEN
510            WRITE(str2,'(i2.2)') nsrf
511            ierr = NF_REDEF (nid)
[352]512#ifdef NC_DOUBLE
513            ierr = NF_DEF_VAR (nid,"AGESNO"//str2,NF_DOUBLE,1,idim2
514     $          ,nvarid)
515#else
[258]516            ierr = NF_DEF_VAR (nid,"AGESNO"//str2,NF_FLOAT,1,idim2
517     $          ,nvarid)
[352]518#endif
[258]519            ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 15,
520     .                        "Age de la neige surface No."//str2)
521            ierr = NF_ENDDEF(nid)
522        ELSE
523            PRINT*, "Trop de sous-mailles"
524            CALL abort
525        ENDIF
[2]526#ifdef NC_DOUBLE
[258]527        ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,agesno(1,nsrf))
[2]528#else
[258]529      ierr = NF_PUT_VAR_REAL (nid,nvarid,agesno(1,nsrf))
[2]530#endif
[258]531      ENDDO
[2]532c
533      ierr = NF_REDEF (nid)
[352]534#ifdef NC_DOUBLE
535      ierr = NF_DEF_VAR (nid, "ZMEA", NF_DOUBLE, 1, idim2,nvarid)
536#else
[2]537      ierr = NF_DEF_VAR (nid, "ZMEA", NF_FLOAT, 1, idim2,nvarid)
[352]538#endif
[2]539      ierr = NF_ENDDEF(nid)
540#ifdef NC_DOUBLE
541      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zmea)
542#else
543      ierr = NF_PUT_VAR_REAL (nid,nvarid,zmea)
544#endif
545c
546      ierr = NF_REDEF (nid)
[352]547#ifdef NC_DOUBLE
548      ierr = NF_DEF_VAR (nid, "ZSTD", NF_DOUBLE, 1, idim2,nvarid)
549#else
[2]550      ierr = NF_DEF_VAR (nid, "ZSTD", NF_FLOAT, 1, idim2,nvarid)
[352]551#endif
[2]552      ierr = NF_ENDDEF(nid)
553#ifdef NC_DOUBLE
554      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zstd)
555#else
556      ierr = NF_PUT_VAR_REAL (nid,nvarid,zstd)
557#endif
558      ierr = NF_REDEF (nid)
[352]559#ifdef NC_DOUBLE
560      ierr = NF_DEF_VAR (nid, "ZSIG", NF_DOUBLE, 1, idim2,nvarid)
561#else
[2]562      ierr = NF_DEF_VAR (nid, "ZSIG", NF_FLOAT, 1, idim2,nvarid)
[352]563#endif
[2]564      ierr = NF_ENDDEF(nid)
565#ifdef NC_DOUBLE
566      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zsig)
567#else
568      ierr = NF_PUT_VAR_REAL (nid,nvarid,zsig)
569#endif
570      ierr = NF_REDEF (nid)
[352]571#ifdef NC_DOUBLE
572      ierr = NF_DEF_VAR (nid, "ZGAM", NF_DOUBLE, 1, idim2,nvarid)
573#else
[2]574      ierr = NF_DEF_VAR (nid, "ZGAM", NF_FLOAT, 1, idim2,nvarid)
[352]575#endif
[2]576      ierr = NF_ENDDEF(nid)
577#ifdef NC_DOUBLE
578      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zgam)
579#else
580      ierr = NF_PUT_VAR_REAL (nid,nvarid,zgam)
581#endif
582      ierr = NF_REDEF (nid)
[352]583#ifdef NC_DOUBLE
584      ierr = NF_DEF_VAR (nid, "ZTHE", NF_DOUBLE, 1, idim2,nvarid)
585#else
[2]586      ierr = NF_DEF_VAR (nid, "ZTHE", NF_FLOAT, 1, idim2,nvarid)
[352]587#endif
[2]588      ierr = NF_ENDDEF(nid)
589#ifdef NC_DOUBLE
590      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zthe)
591#else
592      ierr = NF_PUT_VAR_REAL (nid,nvarid,zthe)
593#endif
594      ierr = NF_REDEF (nid)
[352]595#ifdef NC_DOUBLE
596      ierr = NF_DEF_VAR (nid, "ZPIC", NF_DOUBLE, 1, idim2,nvarid)
597#else
[2]598      ierr = NF_DEF_VAR (nid, "ZPIC", NF_FLOAT, 1, idim2,nvarid)
[352]599#endif
[2]600      ierr = NF_ENDDEF(nid)
601#ifdef NC_DOUBLE
602      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zpic)
603#else
604      ierr = NF_PUT_VAR_REAL (nid,nvarid,zpic)
605#endif
606      ierr = NF_REDEF (nid)
[352]607#ifdef NC_DOUBLE
608      ierr = NF_DEF_VAR (nid, "ZVAL", NF_DOUBLE, 1, idim2,nvarid)
609#else
[2]610      ierr = NF_DEF_VAR (nid, "ZVAL", NF_FLOAT, 1, idim2,nvarid)
[352]611#endif
[2]612      ierr = NF_ENDDEF(nid)
613#ifdef NC_DOUBLE
614      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zval)
615#else
616      ierr = NF_PUT_VAR_REAL (nid,nvarid,zval)
617#endif
618      ierr = NF_REDEF (nid)
[352]619#ifdef NC_DOUBLE
620      ierr = NF_DEF_VAR (nid, "RUGSREL", NF_DOUBLE, 1, idim2,nvarid)
621#else
[2]622      ierr = NF_DEF_VAR (nid, "RUGSREL", NF_FLOAT, 1, idim2,nvarid)
[352]623#endif
[2]624      ierr = NF_ENDDEF(nid)
625#ifdef NC_DOUBLE
626      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rugsrel)
627#else
628      ierr = NF_PUT_VAR_REAL (nid,nvarid,rugsrel)
629#endif
630c
[45]631      ierr = NF_REDEF (nid)
[352]632#ifdef NC_DOUBLE
633      ierr = NF_DEF_VAR (nid, "TANCIEN", NF_DOUBLE, 1, idim3,nvarid)
634#else
[45]635      ierr = NF_DEF_VAR (nid, "TANCIEN", NF_FLOAT, 1, idim3,nvarid)
[352]636#endif
[45]637      ierr = NF_ENDDEF(nid)
638#ifdef NC_DOUBLE
639      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,t_ancien)
640#else
641      ierr = NF_PUT_VAR_REAL (nid,nvarid,t_ancien)
642#endif
643c
644      ierr = NF_REDEF (nid)
[352]645#ifdef NC_DOUBLE
646      ierr = NF_DEF_VAR (nid, "QANCIEN", NF_DOUBLE, 1, idim3,nvarid)
647#else
[45]648      ierr = NF_DEF_VAR (nid, "QANCIEN", NF_FLOAT, 1, idim3,nvarid)
[352]649#endif
[45]650      ierr = NF_ENDDEF(nid)
651#ifdef NC_DOUBLE
652      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q_ancien)
653#else
654      ierr = NF_PUT_VAR_REAL (nid,nvarid,q_ancien)
655#endif
656c
[177]657      ierr = NF_REDEF (nid)
[352]658#ifdef NC_DOUBLE
659      ierr = NF_DEF_VAR (nid, "RUGMER", NF_DOUBLE, 1, idim2,nvarid)
660#else
[177]661      ierr = NF_DEF_VAR (nid, "RUGMER", NF_FLOAT, 1, idim2,nvarid)
[352]662#endif
[177]663      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,
664     .                        "Longueur de rugosite sur mer")
665      ierr = NF_ENDDEF(nid)
666#ifdef NC_DOUBLE
667      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,frugs(1,is_oce))
668#else
669      ierr = NF_PUT_VAR_REAL (nid,nvarid,frugs(1,is_oce))
670#endif
671c
672c
[2]673      ierr = NF_CLOSE(nid)
674c
675      RETURN
676      END
Note: See TracBrowser for help on using the repository browser.