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

Last change on this file since 161 was 151, checked in by lmdzadmin, 24 years ago

Rajout de la derivee des fluxs dans le fichier restart de la physique
LF

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