source: LMDZ.3.3/tags/IPSL-CM4_0x2/libf/phylmd/phyredem.F @ 2054

Last change on this file since 2054 was 352, checked in by lmdzadmin, 22 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
Line 
1c $Header$
2c
3      SUBROUTINE phyredem (fichnom,dtime,radpas,co2_ppm,solaire,
4     .           rlat,rlon, pctsrf,tsol,tsoil,deltat,qsol,snow,
5     .           albedo, evap, rain_fall, snow_fall,
6     .           solsw, sollw,fder,
7     .           radsol,frugs,agesno,
8     .           zmea,zstd,zsig,zgam,zthe,zpic,zval,rugsrel,
9     .           t_ancien, q_ancien)
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"
22#include "temps.h"
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)
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)
41      real fder(klon)
42      REAL radsol(klon)
43      REAL frugs(klon,nbsrf)
44      REAL agesno(klon,nbsrf)
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)
53      REAL pctsrf(klon, nbsrf)
54      REAL t_ancien(klon,klev), q_ancien(klon,klev)
55c
56      INTEGER nid, nvarid, idim1, idim2, idim3
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)
78      ierr = NF_DEF_DIM (nid, "horizon_vertical", klon*klev, idim3)
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
100      tab_cntrl(13) = day_end
101      tab_cntrl(14) = annee_ref
102      tab_cntrl(15) = itau_phy
103c
104      ierr = NF_REDEF (nid)
105#ifdef NC_DOUBLE
106      ierr = NF_DEF_VAR (nid, "controle", NF_DOUBLE, 1, idim1,nvarid)
107#else
108      ierr = NF_DEF_VAR (nid, "controle", NF_FLOAT, 1, idim1,nvarid)
109#endif
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)
120#ifdef NC_DOUBLE
121      ierr = NF_DEF_VAR (nid, "longitude", NF_DOUBLE, 1, idim2,nvarid)
122#else
123      ierr = NF_DEF_VAR (nid, "longitude", NF_FLOAT, 1, idim2,nvarid)
124#endif
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)
135#ifdef NC_DOUBLE
136      ierr = NF_DEF_VAR (nid, "latitude", NF_DOUBLE, 1, idim2,nvarid)
137#else
138      ierr = NF_DEF_VAR (nid, "latitude", NF_FLOAT, 1, idim2,nvarid)
139#endif
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
149C PB ajout du masque terre/mer
150C
151      ierr = NF_REDEF (nid)
152#ifdef NC_DOUBLE
153      ierr = NF_DEF_VAR (nid, "masque", NF_DOUBLE, 1, idim2,nvarid)
154#else
155      ierr = NF_DEF_VAR (nid, "masque", NF_FLOAT, 1, idim2,nvarid)
156#endif
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)
170#ifdef NC_DOUBLE
171      ierr = NF_DEF_VAR (nid, "FTER", NF_DOUBLE, 1, idim2,nvarid)
172#else
173      ierr = NF_DEF_VAR (nid, "FTER", NF_FLOAT, 1, idim2,nvarid)
174#endif
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)
187#ifdef NC_DOUBLE
188      ierr = NF_DEF_VAR (nid, "FLIC", NF_DOUBLE, 1, idim2,nvarid)
189#else
190      ierr = NF_DEF_VAR (nid, "FLIC", NF_FLOAT, 1, idim2,nvarid)
191#endif
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)
204#ifdef NC_DOUBLE
205      ierr = NF_DEF_VAR (nid, "FOCE", NF_DOUBLE, 1, idim2,nvarid)
206#else
207      ierr = NF_DEF_VAR (nid, "FOCE", NF_FLOAT, 1, idim2,nvarid)
208#endif
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)
221#ifdef NC_DOUBLE
222      ierr = NF_DEF_VAR (nid, "FSIC", NF_DOUBLE, 1, idim2,nvarid)
223#else
224      ierr = NF_DEF_VAR (nid, "FSIC", NF_FLOAT, 1, idim2,nvarid)
225#endif
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
236c
237      DO nsrf = 1, nbsrf
238        IF (nsrf.LE.99) THEN
239        WRITE(str2,'(i2.2)') nsrf
240        ierr = NF_REDEF (nid)
241#ifdef NC_DOUBLE
242        ierr = NF_DEF_VAR (nid, "TS"//str2, NF_DOUBLE, 1, idim2,nvarid)
243#else
244        ierr = NF_DEF_VAR (nid, "TS"//str2, NF_FLOAT, 1, idim2,nvarid)
245#endif
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)
265#ifdef NC_DOUBLE
266        ierr = NF_DEF_VAR (nid, "Tsoil"//str7,NF_DOUBLE,1,idim2,nvarid)
267#else
268        ierr = NF_DEF_VAR (nid, "Tsoil"//str7,NF_FLOAT,1,idim2,nvarid)
269#endif
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)
287#ifdef NC_DOUBLE
288      ierr = NF_DEF_VAR (nid, "DELTAT", NF_DOUBLE, 1, idim2,nvarid)
289#else
290      ierr = NF_DEF_VAR (nid, "DELTAT", NF_FLOAT, 1, idim2,nvarid)
291#endif
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)
305#ifdef NC_DOUBLE
306        ierr = NF_DEF_VAR (nid,"QS"//str2,NF_DOUBLE,1,idim2,nvarid)
307#else
308        ierr = NF_DEF_VAR (nid,"QS"//str2,NF_FLOAT,1,idim2,nvarid)
309#endif
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)
328#ifdef NC_DOUBLE
329        ierr = NF_DEF_VAR (nid,"ALBE"//str2,NF_DOUBLE,1,idim2,nvarid)
330#else
331        ierr = NF_DEF_VAR (nid,"ALBE"//str2,NF_FLOAT,1,idim2,nvarid)
332#endif
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)
351#ifdef NC_DOUBLE
352        ierr = NF_DEF_VAR (nid,"EVAP"//str2,NF_DOUBLE,1,idim2,nvarid)
353#else
354        ierr = NF_DEF_VAR (nid,"EVAP"//str2,NF_FLOAT,1,idim2,nvarid)
355#endif
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)
375#ifdef NC_DOUBLE
376        ierr = NF_DEF_VAR (nid,"SNOW"//str2,NF_DOUBLE,1,idim2,nvarid)
377#else
378        ierr = NF_DEF_VAR (nid,"SNOW"//str2,NF_FLOAT,1,idim2,nvarid)
379#endif
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
393
394c
395      ierr = NF_REDEF (nid)
396#ifdef NC_DOUBLE
397      ierr = NF_DEF_VAR (nid, "RADS", NF_DOUBLE, 1, idim2,nvarid)
398#else
399      ierr = NF_DEF_VAR (nid, "RADS", NF_FLOAT, 1, idim2,nvarid)
400#endif
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)
411#ifdef NC_DOUBLE
412      ierr = NF_DEF_VAR (nid, "solsw", NF_DOUBLE, 1, idim2,nvarid)
413#else
414      ierr = NF_DEF_VAR (nid, "solsw", NF_FLOAT, 1, idim2,nvarid)
415#endif
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)
426#ifdef NC_DOUBLE
427      ierr = NF_DEF_VAR (nid, "sollw", NF_DOUBLE, 1, idim2,nvarid)
428#else
429      ierr = NF_DEF_VAR (nid, "sollw", NF_FLOAT, 1, idim2,nvarid)
430#endif
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)
441#ifdef NC_DOUBLE
442      ierr = NF_DEF_VAR (nid, "fder", NF_DOUBLE, 1, idim2,nvarid)
443#else
444      ierr = NF_DEF_VAR (nid, "fder", NF_FLOAT, 1, idim2,nvarid)
445#endif
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)
456#ifdef NC_DOUBLE
457      ierr = NF_DEF_VAR (nid, "rain_f", NF_DOUBLE, 1, idim2,nvarid)
458#else
459      ierr = NF_DEF_VAR (nid, "rain_f", NF_FLOAT, 1, idim2,nvarid)
460#endif
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)
471#ifdef NC_DOUBLE
472      ierr = NF_DEF_VAR (nid, "snow_f", NF_DOUBLE, 1, idim2,nvarid)
473#else
474      ierr = NF_DEF_VAR (nid, "snow_f", NF_FLOAT, 1, idim2,nvarid)
475#endif
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
485      DO nsrf = 1, nbsrf
486        IF (nsrf.LE.99) THEN
487        WRITE(str2,'(i2.2)') nsrf
488        ierr = NF_REDEF (nid)
489#ifdef NC_DOUBLE
490        ierr = NF_DEF_VAR (nid,"RUG"//str2,NF_DOUBLE,1,idim2,nvarid)
491#else
492        ierr = NF_DEF_VAR (nid,"RUG"//str2,NF_FLOAT,1,idim2,nvarid)
493#endif
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
501#ifdef NC_DOUBLE
502      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,frugs(1,nsrf))
503#else
504      ierr = NF_PUT_VAR_REAL (nid,nvarid,frugs(1,nsrf))
505#endif
506      ENDDO
507c
508      DO nsrf = 1, nbsrf
509        IF (nsrf.LE.99) THEN
510            WRITE(str2,'(i2.2)') nsrf
511            ierr = NF_REDEF (nid)
512#ifdef NC_DOUBLE
513            ierr = NF_DEF_VAR (nid,"AGESNO"//str2,NF_DOUBLE,1,idim2
514     $          ,nvarid)
515#else
516            ierr = NF_DEF_VAR (nid,"AGESNO"//str2,NF_FLOAT,1,idim2
517     $          ,nvarid)
518#endif
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
526#ifdef NC_DOUBLE
527        ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,agesno(1,nsrf))
528#else
529      ierr = NF_PUT_VAR_REAL (nid,nvarid,agesno(1,nsrf))
530#endif
531      ENDDO
532c
533      ierr = NF_REDEF (nid)
534#ifdef NC_DOUBLE
535      ierr = NF_DEF_VAR (nid, "ZMEA", NF_DOUBLE, 1, idim2,nvarid)
536#else
537      ierr = NF_DEF_VAR (nid, "ZMEA", NF_FLOAT, 1, idim2,nvarid)
538#endif
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)
547#ifdef NC_DOUBLE
548      ierr = NF_DEF_VAR (nid, "ZSTD", NF_DOUBLE, 1, idim2,nvarid)
549#else
550      ierr = NF_DEF_VAR (nid, "ZSTD", NF_FLOAT, 1, idim2,nvarid)
551#endif
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)
559#ifdef NC_DOUBLE
560      ierr = NF_DEF_VAR (nid, "ZSIG", NF_DOUBLE, 1, idim2,nvarid)
561#else
562      ierr = NF_DEF_VAR (nid, "ZSIG", NF_FLOAT, 1, idim2,nvarid)
563#endif
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)
571#ifdef NC_DOUBLE
572      ierr = NF_DEF_VAR (nid, "ZGAM", NF_DOUBLE, 1, idim2,nvarid)
573#else
574      ierr = NF_DEF_VAR (nid, "ZGAM", NF_FLOAT, 1, idim2,nvarid)
575#endif
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)
583#ifdef NC_DOUBLE
584      ierr = NF_DEF_VAR (nid, "ZTHE", NF_DOUBLE, 1, idim2,nvarid)
585#else
586      ierr = NF_DEF_VAR (nid, "ZTHE", NF_FLOAT, 1, idim2,nvarid)
587#endif
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)
595#ifdef NC_DOUBLE
596      ierr = NF_DEF_VAR (nid, "ZPIC", NF_DOUBLE, 1, idim2,nvarid)
597#else
598      ierr = NF_DEF_VAR (nid, "ZPIC", NF_FLOAT, 1, idim2,nvarid)
599#endif
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)
607#ifdef NC_DOUBLE
608      ierr = NF_DEF_VAR (nid, "ZVAL", NF_DOUBLE, 1, idim2,nvarid)
609#else
610      ierr = NF_DEF_VAR (nid, "ZVAL", NF_FLOAT, 1, idim2,nvarid)
611#endif
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)
619#ifdef NC_DOUBLE
620      ierr = NF_DEF_VAR (nid, "RUGSREL", NF_DOUBLE, 1, idim2,nvarid)
621#else
622      ierr = NF_DEF_VAR (nid, "RUGSREL", NF_FLOAT, 1, idim2,nvarid)
623#endif
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
631      ierr = NF_REDEF (nid)
632#ifdef NC_DOUBLE
633      ierr = NF_DEF_VAR (nid, "TANCIEN", NF_DOUBLE, 1, idim3,nvarid)
634#else
635      ierr = NF_DEF_VAR (nid, "TANCIEN", NF_FLOAT, 1, idim3,nvarid)
636#endif
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)
645#ifdef NC_DOUBLE
646      ierr = NF_DEF_VAR (nid, "QANCIEN", NF_DOUBLE, 1, idim3,nvarid)
647#else
648      ierr = NF_DEF_VAR (nid, "QANCIEN", NF_FLOAT, 1, idim3,nvarid)
649#endif
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
657      ierr = NF_REDEF (nid)
658#ifdef NC_DOUBLE
659      ierr = NF_DEF_VAR (nid, "RUGMER", NF_DOUBLE, 1, idim2,nvarid)
660#else
661      ierr = NF_DEF_VAR (nid, "RUGMER", NF_FLOAT, 1, idim2,nvarid)
662#endif
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
673      ierr = NF_CLOSE(nid)
674c
675      RETURN
676      END
Note: See TracBrowser for help on using the repository browser.