source: LMDZ4/branches/V3_test/libf/phylmd/phyredem.F @ 726

Last change on this file since 726 was 704, checked in by Laurent Fairhead, 18 years ago

Inclusion des modifs de Y. Meurdesoif pour la version V3
LF

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 31.4 KB
Line 
1!
2! $Header$
3!
4c
5      SUBROUTINE phyredem (fichnom,dtime,radpas,
6     .           rlat_p,rlon_p, pctsrf_p,tsol_p,tsoil_p,
7cIM "slab" ocean
8     .           tslab,seaice,
9     .           qsurf_p,qsol_p,snow_p,albedo_p, alblw_p, evap_p,
10     .           rain_fall_p, snow_fall_p,solsw_p, sollw_p,fder_p,
11     .           radsol_p,frugs_p,agesno_p,zmea_p,zstd_p,zsig_p,
12     .           zgam_p,zthe_p,zpic_p,zval_p,rugsrel_p,
13     .           t_ancien_p, q_ancien_p, rnebcon_p, ratqs_p, clwcon_p,
14     .           run_off_lic_0_p)
15      USE dimphy
16      IMPLICIT none
17c======================================================================
18c Auteur(s) Z.X. Li (LMD/CNRS) date: 19930818
19c Objet: Ecriture de l'etat de redemarrage pour la physique
20c======================================================================
21cym#include "dimensions.h"
22cym#include "dimphy.h"
23#include "netcdf.inc"
24#include "indicesol.h"
25#include "dimsoil.h"
26#include "clesphys.h"
27#include "control.h"
28#include "temps.h"
29c======================================================================
30      CHARACTER*(*) fichnom
31      REAL dtime
32      INTEGER radpas
33      REAL rlat_p(klon), rlon_p(klon)
34      REAL tsol_p(klon,nbsrf)
35      REAL tsoil_p(klon,nsoilmx,nbsrf)
36cIM "slab" ocean
37      REAL tslab_p(klon), seaice_p(klon)
38      REAL qsurf_p(klon,nbsrf)
39      REAL qsol_p(klon)
40      REAL snow_p(klon,nbsrf)
41      REAL albedo_p(klon,nbsrf)
42cIM BEG
43      REAL alblw_p(klon,nbsrf)
44cIM END
45      REAL evap_p(klon,nbsrf)
46      REAL rain_fall_p(klon)
47      REAL snow_fall_p(klon)
48      real solsw_p(klon)
49      real sollw_p(klon)
50      real fder_p(klon)
51      REAL radsol_p(klon)
52      REAL frugs_p(klon,nbsrf)
53      REAL agesno_p(klon,nbsrf)
54      REAL zmea_p(klon)
55      REAL zstd_p(klon)
56      REAL zsig_p(klon)
57      REAL zgam_p(klon)
58      REAL zthe_p(klon)
59      REAL zpic_p(klon)
60      REAL zval_p(klon)
61      REAL rugsrel_p(klon)
62      REAL pctsrf_p(klon, nbsrf)
63      REAL t_ancien_p(klon,klev), q_ancien_p(klon,klev)
64      real clwcon_p(klon,klev),rnebcon_p(klon,klev),ratqs_p(klon,klev)
65      REAL run_off_lic_0_p(klon)
66     
67      REAL rlat(klon2), rlon(klon2)
68      REAL tsol(klon2,nbsrf)
69      REAL tsoil(klon2,nsoilmx,nbsrf)
70      REAL tslab(klon2), seaice(klon2)
71      REAL qsurf(klon2,nbsrf)
72      REAL qsol(klon2)
73      REAL snow(klon2,nbsrf)
74      REAL albedo(klon2,nbsrf)
75      REAL alblw(klon2,nbsrf)
76      REAL evap(klon2,nbsrf)
77      REAL rain_fall(klon2)
78      REAL snow_fall(klon2)
79      real solsw(klon2)
80      real sollw(klon2)
81      real fder(klon2)
82      REAL radsol(klon2)
83      REAL frugs(klon2,nbsrf)
84      REAL agesno(klon2,nbsrf)
85      REAL zmea(klon2)
86      REAL zstd(klon2)
87      REAL zsig(klon2)
88      REAL zgam(klon2)
89      REAL zthe(klon2)
90      REAL zpic(klon2)
91      REAL zval(klon2)
92      REAL rugsrel(klon2)
93      REAL pctsrf(klon2, nbsrf)
94      REAL t_ancien(klon2,klev), q_ancien(klon2,klev)
95      real clwcon(klon2,klev),rnebcon(klon2,klev),ratqs(klon2,klev)
96      REAL run_off_lic_0(klon2)
97c
98      INTEGER nid, nvarid, idim1, idim2, idim3
99      INTEGER ierr
100      INTEGER length
101      PARAMETER (length=100)
102      REAL tab_cntrl(length)
103c
104      INTEGER isoil, nsrf
105      CHARACTER*7 str7
106      CHARACTER*2 str2
107c
108      REAL,SAVE,ALLOCATABLE :: rlat_mpi(:), rlon_mpi(:)
109      REAL,SAVE,ALLOCATABLE :: tsol_mpi(:,:)
110      REAL,SAVE,ALLOCATABLE :: tsoil_mpi(:,:,:)
111      REAL,SAVE,ALLOCATABLE :: tslab_mpi(:)
112      REAL,SAVE,ALLOCATABLE :: seaice_mpi(:)
113      REAL,SAVE,ALLOCATABLE :: qsurf_mpi(:,:)
114      REAL,SAVE,ALLOCATABLE :: qsol_mpi(:)
115      REAL,SAVE,ALLOCATABLE :: snow_mpi(:,:)
116      REAL,SAVE,ALLOCATABLE :: albedo_mpi(:,:)
117      REAL,SAVE,ALLOCATABLE :: alblw_mpi(:,:)
118      REAL,SAVE,ALLOCATABLE :: evap_mpi(:,:)
119      REAL,SAVE,ALLOCATABLE :: rain_fall_mpi(:)
120      REAL,SAVE,ALLOCATABLE :: snow_fall_mpi(:)
121      REAL,SAVE,ALLOCATABLE :: solsw_mpi(:)
122      REAL,SAVE,ALLOCATABLE :: sollw_mpi(:)
123      REAL,SAVE,ALLOCATABLE :: fder_mpi(:)
124      REAL,SAVE,ALLOCATABLE :: radsol_mpi(:)
125      REAL,SAVE,ALLOCATABLE :: frugs_mpi(:,:)
126      REAL,SAVE,ALLOCATABLE :: agesno_mpi(:,:)
127      REAL,SAVE,ALLOCATABLE :: zmea_mpi(:)
128      REAL,SAVE,ALLOCATABLE :: zstd_mpi(:)
129      REAL,SAVE,ALLOCATABLE :: zsig_mpi(:)
130      REAL,SAVE,ALLOCATABLE :: zgam_mpi(:)
131      REAL,SAVE,ALLOCATABLE :: zthe_mpi(:)
132      REAL,SAVE,ALLOCATABLE :: zpic_mpi(:)
133      REAL,SAVE,ALLOCATABLE :: zval_mpi(:)
134      REAL,SAVE,ALLOCATABLE :: rugsrel_mpi(:)
135      REAL,SAVE,ALLOCATABLE :: pctsrf_mpi(:, :)
136      REAL,SAVE,ALLOCATABLE :: t_ancien_mpi(:,:), q_ancien_mpi(:,:)
137      REAL,SAVE,ALLOCATABLE :: clwcon_mpi(:,:),rnebcon_mpi(:,:)
138      REAL,SAVE,ALLOCATABLE :: ratqs_mpi(:,:)
139      REAL,SAVE,ALLOCATABLE :: run_off_lic_0_mpi(:)
140     
141c$OMP MASTER
142      ALLOCATE( rlat_mpi(klon_mpi), rlon_mpi(klon_mpi))
143      ALLOCATE( tsol_mpi(klon_mpi,nbsrf))
144      ALLOCATE( tsoil_mpi(klon_mpi,nsoilmx,nbsrf))
145      ALLOCATE( tslab_mpi(klon_mpi))
146      ALLOCATE( seaice_mpi(klon_mpi))
147      ALLOCATE( qsurf_mpi(klon_mpi,nbsrf))
148      ALLOCATE( qsol_mpi(klon_mpi))
149      ALLOCATE( snow_mpi(klon_mpi,nbsrf))
150      ALLOCATE( albedo_mpi(klon_mpi,nbsrf))
151      ALLOCATE( alblw_mpi(klon_mpi,nbsrf))
152      ALLOCATE( evap_mpi(klon_mpi,nbsrf))
153      ALLOCATE( rain_fall_mpi(klon_mpi))
154      ALLOCATE( snow_fall_mpi(klon_mpi))
155      ALLOCATE( solsw_mpi(klon_mpi))
156      ALLOCATE( sollw_mpi(klon_mpi))
157      ALLOCATE( fder_mpi(klon_mpi))
158      ALLOCATE( radsol_mpi(klon_mpi))
159      ALLOCATE( frugs_mpi(klon_mpi,nbsrf))
160      ALLOCATE( agesno_mpi(klon_mpi,nbsrf))
161      ALLOCATE( zmea_mpi(klon_mpi))
162      ALLOCATE( zstd_mpi(klon_mpi))
163      ALLOCATE( zsig_mpi(klon_mpi))
164      ALLOCATE( zgam_mpi(klon_mpi))
165      ALLOCATE( zthe_mpi(klon_mpi))
166      ALLOCATE( zpic_mpi(klon_mpi))
167      ALLOCATE( zval_mpi(klon_mpi))
168      ALLOCATE( rugsrel_mpi(klon_mpi))
169      ALLOCATE( pctsrf_mpi(klon_mpi, nbsrf))
170      ALLOCATE( t_ancien_mpi(klon_mpi,klev))
171      ALLOCATE( q_ancien_mpi(klon_mpi,klev))
172      ALLOCATE( clwcon_mpi(klon_mpi,klev),rnebcon_mpi(klon_mpi,klev))
173      ALLOCATE( ratqs_mpi(klon_mpi,klev))
174      ALLOCATE( run_off_lic_0_mpi(klon_mpi))
175c$OMP END MASTER
176c$OMP BARRIER     
177
178      call GatherField_omp( rlat_p,rlat_mpi,1)
179      call GatherField_omp( rlon_p,rlon_mpi,1)
180      call GatherField_omp( tsol_p,tsol_mpi,nbsrf)
181      call GatherField_omp( tsoil_p,tsoil_mpi,nsoilmx*nbsrf)
182      call GatherField_omp( tslab_p,tslab_mpi,1)
183      call GatherField_omp( seaice_p,seaice_mpi,1)
184      call GatherField_omp( qsurf_p,qsurf_mpi,nbsrf)
185      call GatherField_omp( qsol_p,qsol_mpi,1)
186      call GatherField_omp( snow_p,snow_mpi,nbsrf)
187      call GatherField_omp( albedo_p,albedo_mpi,nbsrf)
188      call GatherField_omp( alblw_p,alblw_mpi,nbsrf)
189      call GatherField_omp( evap_p,evap_mpi,nbsrf)
190      call GatherField_omp( radsol_p,radsol_mpi,1)
191      call GatherField_omp( rain_fall_p,rain_fall_mpi,1)
192      call GatherField_omp( snow_fall_p,snow_fall_mpi,1)
193      call GatherField_omp( sollw_p,sollw_mpi,1)
194      call GatherField_omp( solsw_p,solsw_mpi,1)
195      call GatherField_omp( fder_p,fder_mpi,1)
196      call GatherField_omp( frugs_p,frugs_mpi,nbsrf)
197      call GatherField_omp( agesno_p,agesno_mpi,nbsrf)
198      call GatherField_omp( zmea_p,zmea_mpi,1)
199      call GatherField_omp( zstd_p,zstd_mpi,1)
200      call GatherField_omp( zsig_p,zsig_mpi,1)
201      call GatherField_omp( zgam_p,zgam_mpi,1)
202      call GatherField_omp( zthe_p,zthe_mpi,1)
203      call GatherField_omp( zpic_p,zpic_mpi,1)
204      call GatherField_omp( zval_p,zval_mpi,1)
205      call GatherField_omp( rugsrel_p,rugsrel_mpi,1)
206      call GatherField_omp( pctsrf_p,pctsrf_mpi, nbsrf)
207      call GatherField_omp( run_off_lic_0_p,run_off_lic_0_mpi,1)
208      call GatherField_omp( t_ancien_p,t_ancien_mpi,klev)
209      call GatherField_omp( q_ancien_p,q_ancien_mpi,klev)
210      call GatherField_omp( rnebcon_p,rnebcon_mpi,klev)
211      call GatherField_omp( clwcon_p,clwcon_mpi,klev)
212      call GatherField_omp( ratqs_p,ratqs_mpi,klev)
213     
214c$OMP MASTER     
215      call GatherField( rlat_mpi,rlat,1)
216      call GatherField( rlon_mpi,rlon,1)
217      call GatherField( tsol_mpi,tsol,nbsrf)
218      call GatherField( tsoil_mpi,tsoil,nsoilmx*nbsrf)
219      call GatherField( tslab_mpi,tslab,1)
220      call GatherField( seaice_mpi,seaice,1)
221      call GatherField( qsurf_mpi,qsurf,nbsrf)
222      call GatherField( qsol_mpi,qsol,1)
223      call GatherField( snow_mpi,snow,nbsrf)
224      call GatherField( albedo_mpi,albedo,nbsrf)
225      call GatherField( alblw_mpi,alblw,nbsrf)
226      call GatherField( evap_mpi,evap,nbsrf)
227      call GatherField( radsol_mpi,radsol,1)
228      call GatherField( rain_fall_mpi,rain_fall,1)
229      call GatherField( snow_fall_mpi,snow_fall,1)
230      call GatherField( sollw_mpi,sollw,1)
231      call GatherField( solsw_mpi,solsw,1)
232      call GatherField( fder_mpi,fder,1)
233      call GatherField( frugs_mpi,frugs,nbsrf)
234      call GatherField( agesno_mpi,agesno,nbsrf)
235      call GatherField( zmea_mpi,zmea,1)
236      call GatherField( zstd_mpi,zstd,1)
237      call GatherField( zsig_mpi,zsig,1)
238      call GatherField( zgam_mpi,zgam,1)
239      call GatherField( zthe_mpi,zthe,1)
240      call GatherField( zpic_mpi,zpic,1)
241      call GatherField( zval_mpi,zval,1)
242      call GatherField( rugsrel_mpi,rugsrel,1)
243      call GatherField( pctsrf_mpi,pctsrf, nbsrf)
244      call GatherField( run_off_lic_0_mpi,run_off_lic_0,1)
245      call GatherField( t_ancien_mpi,t_ancien,klev)
246      call GatherField( q_ancien_mpi,q_ancien,klev)
247      call GatherField( rnebcon_mpi,rnebcon,klev)
248      call GatherField( clwcon_mpi,clwcon,klev)
249      call GatherField( ratqs_mpi,ratqs,klev)
250
251      DEALLOCATE( rlat_mpi, rlon_mpi)
252      DEALLOCATE( tsol_mpi)
253      DEALLOCATE( tsoil_mpi)
254      DEALLOCATE( tslab_mpi)
255      DEALLOCATE( seaice_mpi)
256      DEALLOCATE( qsurf_mpi)
257      DEALLOCATE( qsol_mpi)
258      DEALLOCATE( snow_mpi)
259      DEALLOCATE( albedo_mpi)
260      DEALLOCATE( alblw_mpi)
261      DEALLOCATE( evap_mpi)
262      DEALLOCATE( rain_fall_mpi)
263      DEALLOCATE( snow_fall_mpi)
264      DEALLOCATE( solsw_mpi)
265      DEALLOCATE( sollw_mpi)
266      DEALLOCATE( fder_mpi)
267      DEALLOCATE( radsol_mpi)
268      DEALLOCATE( frugs_mpi)
269      DEALLOCATE( agesno_mpi)
270      DEALLOCATE( zmea_mpi)
271      DEALLOCATE( zstd_mpi)
272      DEALLOCATE( zsig_mpi)
273      DEALLOCATE( zgam_mpi)
274      DEALLOCATE( zthe_mpi)
275      DEALLOCATE( zpic_mpi)
276      DEALLOCATE( zval_mpi)
277      DEALLOCATE( rugsrel_mpi)
278      DEALLOCATE( pctsrf_mpi)
279      DEALLOCATE( t_ancien_mpi)
280      DEALLOCATE( q_ancien_mpi)
281      DEALLOCATE( clwcon_mpi,rnebcon_mpi)
282      DEALLOCATE( ratqs_mpi)
283      DEALLOCATE( run_off_lic_0_mpi)
284
285      if (phy_rank==0) then
286     
287      ierr = NF_CREATE(fichnom, NF_CLOBBER, nid)
288      IF (ierr.NE.NF_NOERR) THEN
289        write(6,*)' Pb d''ouverture du fichier '//fichnom
290        write(6,*)' ierr = ', ierr
291        CALL ABORT
292      ENDIF
293c
294      ierr = NF_PUT_ATT_TEXT (nid, NF_GLOBAL, "title", 28,
295     .                       "Fichier redemmarage physique")
296c
297      ierr = NF_DEF_DIM (nid, "index", length, idim1)
298      ierr = NF_DEF_DIM (nid, "points_physiques", klon, idim2)
299      ierr = NF_DEF_DIM (nid, "horizon_vertical", klon*klev, idim3)
300c
301      ierr = NF_ENDDEF(nid)
302c
303      DO ierr = 1, length
304         tab_cntrl(ierr) = 0.0
305      ENDDO
306      tab_cntrl(1) = dtime
307      tab_cntrl(2) = radpas
308      tab_cntrl(3) = co2_ppm
309      tab_cntrl(4) = solaire
310      tab_cntrl(5) = iflag_con
311      tab_cntrl(6) = nbapp_rad
312
313      IF( cycle_diurne ) tab_cntrl( 7 ) = 1.
314      IF(   soil_model ) tab_cntrl( 8 ) = 1.
315      IF(     new_oliq ) tab_cntrl( 9 ) = 1.
316      IF(     ok_orodr ) tab_cntrl(10 ) = 1.
317      IF(     ok_orolf ) tab_cntrl(11 ) = 1.
318
319      tab_cntrl(13) = day_end
320      tab_cntrl(14) = annee_ref
321      tab_cntrl(15) = itau_phy
322c
323      ierr = NF_REDEF (nid)
324#ifdef NC_DOUBLE
325      ierr = NF_DEF_VAR (nid, "controle", NF_DOUBLE, 1, idim1,nvarid)
326#else
327      ierr = NF_DEF_VAR (nid, "controle", NF_FLOAT, 1, idim1,nvarid)
328#endif
329      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 22,
330     .                        "Parametres de controle")
331      ierr = NF_ENDDEF(nid)
332#ifdef NC_DOUBLE
333      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tab_cntrl)
334#else
335      ierr = NF_PUT_VAR_REAL (nid,nvarid,tab_cntrl)
336#endif
337c
338      ierr = NF_REDEF (nid)
339#ifdef NC_DOUBLE
340      ierr = NF_DEF_VAR (nid, "longitude", NF_DOUBLE, 1, idim2,nvarid)
341#else
342      ierr = NF_DEF_VAR (nid, "longitude", NF_FLOAT, 1, idim2,nvarid)
343#endif
344      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 32,
345     .                        "Longitudes de la grille physique")
346      ierr = NF_ENDDEF(nid)
347#ifdef NC_DOUBLE
348      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rlon)
349#else
350      ierr = NF_PUT_VAR_REAL (nid,nvarid,rlon)
351#endif
352c
353      ierr = NF_REDEF (nid)
354#ifdef NC_DOUBLE
355      ierr = NF_DEF_VAR (nid, "latitude", NF_DOUBLE, 1, idim2,nvarid)
356#else
357      ierr = NF_DEF_VAR (nid, "latitude", NF_FLOAT, 1, idim2,nvarid)
358#endif
359      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 31,
360     .                        "Latitudes de la grille physique")
361      ierr = NF_ENDDEF(nid)
362#ifdef NC_DOUBLE
363      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rlat)
364#else
365      ierr = NF_PUT_VAR_REAL (nid,nvarid,rlat)
366#endif
367c
368C PB ajout du masque terre/mer
369C
370      ierr = NF_REDEF (nid)
371#ifdef NC_DOUBLE
372      ierr = NF_DEF_VAR (nid, "masque", NF_DOUBLE, 1, idim2,nvarid)
373#else
374      ierr = NF_DEF_VAR (nid, "masque", NF_FLOAT, 1, idim2,nvarid)
375#endif
376      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 16,
377     .                        "masque terre mer")
378      ierr = NF_ENDDEF(nid)
379#ifdef NC_DOUBLE
380      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zmasq)
381#else
382      ierr = NF_PUT_VAR_REAL (nid,nvarid,zmasq)
383#endif     
384c BP ajout des fraction de chaque sous-surface
385C
386C 1. fraction de terre
387C
388      ierr = NF_REDEF (nid)
389#ifdef NC_DOUBLE
390      ierr = NF_DEF_VAR (nid, "FTER", NF_DOUBLE, 1, idim2,nvarid)
391#else
392      ierr = NF_DEF_VAR (nid, "FTER", NF_FLOAT, 1, idim2,nvarid)
393#endif
394      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 21,
395     .                        "fraction de continent")
396      ierr = NF_ENDDEF(nid)
397#ifdef NC_DOUBLE
398      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon, is_ter))
399#else
400      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_ter))
401#endif
402C
403C 2. Fraction de glace de terre
404C
405      ierr = NF_REDEF (nid)
406#ifdef NC_DOUBLE
407      ierr = NF_DEF_VAR (nid, "FLIC", NF_DOUBLE, 1, idim2,nvarid)
408#else
409      ierr = NF_DEF_VAR (nid, "FLIC", NF_FLOAT, 1, idim2,nvarid)
410#endif
411      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 24,
412     .                        "fraction glace de terre")
413      ierr = NF_ENDDEF(nid)
414#ifdef NC_DOUBLE
415      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon,is_lic))
416#else
417      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_lic))
418#endif
419C
420C 3. fraction ocean
421C
422      ierr = NF_REDEF (nid)
423#ifdef NC_DOUBLE
424      ierr = NF_DEF_VAR (nid, "FOCE", NF_DOUBLE, 1, idim2,nvarid)
425#else
426      ierr = NF_DEF_VAR (nid, "FOCE", NF_FLOAT, 1, idim2,nvarid)
427#endif
428      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 14,
429     .                        "fraction ocean")
430      ierr = NF_ENDDEF(nid)
431#ifdef NC_DOUBLE
432      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon, is_oce))
433#else
434      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_oce))
435#endif
436C
437C 4. Fraction glace de mer
438C
439      ierr = NF_REDEF (nid)
440#ifdef NC_DOUBLE
441      ierr = NF_DEF_VAR (nid, "FSIC", NF_DOUBLE, 1, idim2,nvarid)
442#else
443      ierr = NF_DEF_VAR (nid, "FSIC", NF_FLOAT, 1, idim2,nvarid)
444#endif
445      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 18,
446     .                        "fraction glace mer")
447      ierr = NF_ENDDEF(nid)
448#ifdef NC_DOUBLE
449      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon, is_sic))
450#else
451      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_sic))
452#endif
453C
454C
455c
456      DO nsrf = 1, nbsrf
457        IF (nsrf.LE.99) THEN
458        WRITE(str2,'(i2.2)') nsrf
459        ierr = NF_REDEF (nid)
460#ifdef NC_DOUBLE
461        ierr = NF_DEF_VAR (nid, "TS"//str2, NF_DOUBLE, 1, idim2,nvarid)
462#else
463        ierr = NF_DEF_VAR (nid, "TS"//str2, NF_FLOAT, 1, idim2,nvarid)
464#endif
465        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,
466     .                        "Temperature de surface No."//str2)
467        ierr = NF_ENDDEF(nid)
468        ELSE
469        PRINT*, "Trop de sous-mailles"
470        CALL abort
471        ENDIF
472#ifdef NC_DOUBLE
473        ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tsol(1,nsrf))
474#else
475        ierr = NF_PUT_VAR_REAL (nid,nvarid,tsol(1,nsrf))
476#endif
477      ENDDO
478c
479      DO nsrf = 1, nbsrf
480      DO isoil=1, nsoilmx
481        IF (isoil.LE.99 .AND. nsrf.LE.99) THEN
482        WRITE(str7,'(i2.2,"srf",i2.2)') isoil,nsrf
483        ierr = NF_REDEF (nid)
484#ifdef NC_DOUBLE
485        ierr = NF_DEF_VAR (nid, "Tsoil"//str7,NF_DOUBLE,1,idim2,nvarid)
486#else
487        ierr = NF_DEF_VAR (nid, "Tsoil"//str7,NF_FLOAT,1,idim2,nvarid)
488#endif
489        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 29,
490     .                        "Temperature du sol No."//str7)
491        ierr = NF_ENDDEF(nid)
492        ELSE
493        PRINT*, "Trop de couches"
494        CALL abort
495        ENDIF
496#ifdef NC_DOUBLE
497        ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tsoil(1,isoil,nsrf))
498#else
499        ierr = NF_PUT_VAR_REAL (nid,nvarid,tsoil(1,isoil,nsrf))
500#endif
501      ENDDO
502      ENDDO
503c
504cIM "slab" ocean
505      ierr = NF_REDEF (nid)
506#ifdef NC_DOUBLE
507      ierr = NF_DEF_VAR (nid, "TSLAB", NF_DOUBLE, 1, idim2,nvarid)
508#else
509      ierr = NF_DEF_VAR (nid, "TSLAB", NF_FLOAT, 1, idim2,nvarid)
510#endif
511      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 33,
512     .                        "Ecart de la SST (pour slab-ocean)")
513      ierr = NF_ENDDEF(nid)
514#ifdef NC_DOUBLE
515      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tslab)
516#else
517      ierr = NF_PUT_VAR_REAL (nid,nvarid,tslab)
518#endif
519c
520      ierr = NF_REDEF (nid)
521#ifdef NC_DOUBLE
522      ierr = NF_DEF_VAR (nid, "SEAICE", NF_DOUBLE, 1, idim2,nvarid)
523#else
524      ierr = NF_DEF_VAR (nid, "SEAICE", NF_FLOAT, 1, idim2,nvarid)
525#endif
526      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 33,
527     .                        "Glace de mer kg/m2 (pour slab-ocean)")
528      ierr = NF_ENDDEF(nid)
529#ifdef NC_DOUBLE
530      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,seaice)
531#else
532      ierr = NF_PUT_VAR_REAL (nid,nvarid,seaice)
533#endif
534c
535      DO nsrf = 1, nbsrf
536        IF (nsrf.LE.99) THEN
537        WRITE(str2,'(i2.2)') nsrf
538        ierr = NF_REDEF (nid)
539#ifdef NC_DOUBLE
540        ierr = NF_DEF_VAR (nid,"QS"//str2,NF_DOUBLE,1,idim2,nvarid)
541#else
542        ierr = NF_DEF_VAR (nid,"QS"//str2,NF_FLOAT,1,idim2,nvarid)
543#endif
544        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 25,
545     .                        "Humidite de surface No."//str2)
546        ierr = NF_ENDDEF(nid)
547        ELSE
548        PRINT*, "Trop de sous-mailles"
549        CALL abort
550        ENDIF
551#ifdef NC_DOUBLE
552      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,qsurf(1,nsrf))
553#else
554      ierr = NF_PUT_VAR_REAL (nid,nvarid,qsurf(1,nsrf))
555#endif
556      END DO
557C
558      ierr = NF_REDEF (nid)
559#ifdef NC_DOUBLE
560      ierr = NF_DEF_VAR (nid,"QSOL",NF_DOUBLE,1,idim2,nvarid)
561#else
562      ierr = NF_DEF_VAR (nid,"QSOL",NF_FLOAT,1,idim2,nvarid)
563#endif
564      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 20,
565     .    "Eau dans le sol (mm)")
566      ierr = NF_ENDDEF(nid)
567#ifdef NC_DOUBLE
568      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,qsol)
569#else
570      ierr = NF_PUT_VAR_REAL (nid,nvarid,qsol)
571#endif
572c
573      DO nsrf = 1, nbsrf
574        IF (nsrf.LE.99) THEN
575        WRITE(str2,'(i2.2)') nsrf
576        ierr = NF_REDEF (nid)
577#ifdef NC_DOUBLE
578        ierr = NF_DEF_VAR (nid,"ALBE"//str2,NF_DOUBLE,1,idim2,nvarid)
579#else
580        ierr = NF_DEF_VAR (nid,"ALBE"//str2,NF_FLOAT,1,idim2,nvarid)
581#endif
582        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 23,
583     .                        "albedo de surface No."//str2)
584        ierr = NF_ENDDEF(nid)
585        ELSE
586        PRINT*, "Trop de sous-mailles"
587        CALL abort
588        ENDIF
589#ifdef NC_DOUBLE
590      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,albedo(1,nsrf))
591#else
592      ierr = NF_PUT_VAR_REAL (nid,nvarid,albedo(1,nsrf))
593#endif
594      ENDDO
595
596cIM BEG albedo LW
597        DO nsrf = 1, nbsrf
598        IF (nsrf.LE.99) THEN
599        WRITE(str2,'(i2.2)') nsrf
600        ierr = NF_REDEF (nid)
601#ifdef NC_DOUBLE
602        ierr = NF_DEF_VAR (nid,"ALBLW"//str2,NF_DOUBLE,1,idim2,nvarid)
603#else
604        ierr = NF_DEF_VAR (nid,"ALBLW"//str2,NF_FLOAT,1,idim2,nvarid)
605#endif
606        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 23,
607     .                        "albedo LW de surface No."//str2)
608        ierr = NF_ENDDEF(nid)
609        ELSE
610        PRINT*, "Trop de sous-mailles"
611        CALL abort
612        ENDIF
613#ifdef NC_DOUBLE
614      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,alblw(1,nsrf))
615#else
616      ierr = NF_PUT_VAR_REAL (nid,nvarid,alblw(1,nsrf))
617#endif
618      ENDDO
619cIM END albedo LW
620c
621      DO nsrf = 1, nbsrf
622        IF (nsrf.LE.99) THEN
623        WRITE(str2,'(i2.2)') nsrf
624        ierr = NF_REDEF (nid)
625#ifdef NC_DOUBLE
626        ierr = NF_DEF_VAR (nid,"EVAP"//str2,NF_DOUBLE,1,idim2,nvarid)
627#else
628        ierr = NF_DEF_VAR (nid,"EVAP"//str2,NF_FLOAT,1,idim2,nvarid)
629#endif
630        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,
631     .                        "Evaporation de surface No."//str2)
632        ierr = NF_ENDDEF(nid)
633        ELSE
634        PRINT*, "Trop de sous-mailles"
635        CALL abort
636        ENDIF
637#ifdef NC_DOUBLE
638      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,evap(1,nsrf))
639#else
640      ierr = NF_PUT_VAR_REAL (nid,nvarid,evap(1,nsrf))
641#endif
642      ENDDO
643
644c
645      DO nsrf = 1, nbsrf
646        IF (nsrf.LE.99) THEN
647        WRITE(str2,'(i2.2)') nsrf
648        ierr = NF_REDEF (nid)
649#ifdef NC_DOUBLE
650        ierr = NF_DEF_VAR (nid,"SNOW"//str2,NF_DOUBLE,1,idim2,nvarid)
651#else
652        ierr = NF_DEF_VAR (nid,"SNOW"//str2,NF_FLOAT,1,idim2,nvarid)
653#endif
654        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 22,
655     .                        "Neige de surface No."//str2)
656        ierr = NF_ENDDEF(nid)
657        ELSE
658        PRINT*, "Trop de sous-mailles"
659        CALL abort
660        ENDIF
661#ifdef NC_DOUBLE
662      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,snow(1,nsrf))
663#else
664      ierr = NF_PUT_VAR_REAL (nid,nvarid,snow(1,nsrf))
665#endif
666      ENDDO
667
668c
669      ierr = NF_REDEF (nid)
670#ifdef NC_DOUBLE
671      ierr = NF_DEF_VAR (nid, "RADS", NF_DOUBLE, 1, idim2,nvarid)
672#else
673      ierr = NF_DEF_VAR (nid, "RADS", NF_FLOAT, 1, idim2,nvarid)
674#endif
675      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,
676     .                        "Rayonnement net a la surface")
677      ierr = NF_ENDDEF(nid)
678#ifdef NC_DOUBLE
679      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,radsol)
680#else
681      ierr = NF_PUT_VAR_REAL (nid,nvarid,radsol)
682#endif
683c
684      ierr = NF_REDEF (nid)
685#ifdef NC_DOUBLE
686      ierr = NF_DEF_VAR (nid, "solsw", NF_DOUBLE, 1, idim2,nvarid)
687#else
688      ierr = NF_DEF_VAR (nid, "solsw", NF_FLOAT, 1, idim2,nvarid)
689#endif
690      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 32,
691     .                        "Rayonnement solaire a la surface")
692      ierr = NF_ENDDEF(nid)
693#ifdef NC_DOUBLE
694      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,solsw)
695#else
696      ierr = NF_PUT_VAR_REAL (nid,nvarid,solsw)
697#endif
698c
699      ierr = NF_REDEF (nid)
700#ifdef NC_DOUBLE
701      ierr = NF_DEF_VAR (nid, "sollw", NF_DOUBLE, 1, idim2,nvarid)
702#else
703      ierr = NF_DEF_VAR (nid, "sollw", NF_FLOAT, 1, idim2,nvarid)
704#endif
705      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 27,
706     .                        "Rayonnement IF a la surface")
707      ierr = NF_ENDDEF(nid)
708#ifdef NC_DOUBLE
709      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,sollw)
710#else
711      ierr = NF_PUT_VAR_REAL (nid,nvarid,sollw)
712#endif
713c
714      ierr = NF_REDEF (nid)
715#ifdef NC_DOUBLE
716      ierr = NF_DEF_VAR (nid, "fder", NF_DOUBLE, 1, idim2,nvarid)
717#else
718      ierr = NF_DEF_VAR (nid, "fder", NF_FLOAT, 1, idim2,nvarid)
719#endif
720      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 14,
721     .                        "Derive de flux")
722      ierr = NF_ENDDEF(nid)
723#ifdef NC_DOUBLE
724      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,fder)
725#else
726      ierr = NF_PUT_VAR_REAL (nid,nvarid,fder)
727#endif
728c
729      ierr = NF_REDEF (nid)
730#ifdef NC_DOUBLE
731      ierr = NF_DEF_VAR (nid, "rain_f", NF_DOUBLE, 1, idim2,nvarid)
732#else
733      ierr = NF_DEF_VAR (nid, "rain_f", NF_FLOAT, 1, idim2,nvarid)
734#endif
735      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 21,
736     .                        "precipitation liquide")
737      ierr = NF_ENDDEF(nid)
738#ifdef NC_DOUBLE
739      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rain_fall)
740#else
741      ierr = NF_PUT_VAR_REAL (nid,nvarid,rain_fall)
742#endif
743c
744      ierr = NF_REDEF (nid)
745#ifdef NC_DOUBLE
746      ierr = NF_DEF_VAR (nid, "snow_f", NF_DOUBLE, 1, idim2,nvarid)
747#else
748      ierr = NF_DEF_VAR (nid, "snow_f", NF_FLOAT, 1, idim2,nvarid)
749#endif
750      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 20,
751     .                        "precipitation solide")
752      ierr = NF_ENDDEF(nid)
753#ifdef NC_DOUBLE
754      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,snow_fall)
755#else
756      ierr = NF_PUT_VAR_REAL (nid,nvarid,snow_fall)
757#endif
758c
759      DO nsrf = 1, nbsrf
760        IF (nsrf.LE.99) THEN
761        WRITE(str2,'(i2.2)') nsrf
762        ierr = NF_REDEF (nid)
763#ifdef NC_DOUBLE
764        ierr = NF_DEF_VAR (nid,"RUG"//str2,NF_DOUBLE,1,idim2,nvarid)
765#else
766        ierr = NF_DEF_VAR (nid,"RUG"//str2,NF_FLOAT,1,idim2,nvarid)
767#endif
768        ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 23,
769     .                        "rugosite de surface No."//str2)
770        ierr = NF_ENDDEF(nid)
771        ELSE
772        PRINT*, "Trop de sous-mailles"
773        CALL abort
774        ENDIF
775#ifdef NC_DOUBLE
776      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,frugs(1,nsrf))
777#else
778      ierr = NF_PUT_VAR_REAL (nid,nvarid,frugs(1,nsrf))
779#endif
780      ENDDO
781c
782      DO nsrf = 1, nbsrf
783        IF (nsrf.LE.99) THEN
784            WRITE(str2,'(i2.2)') nsrf
785            ierr = NF_REDEF (nid)
786#ifdef NC_DOUBLE
787            ierr = NF_DEF_VAR (nid,"AGESNO"//str2,NF_DOUBLE,1,idim2
788     $          ,nvarid)
789#else
790            ierr = NF_DEF_VAR (nid,"AGESNO"//str2,NF_FLOAT,1,idim2
791     $          ,nvarid)
792#endif
793            ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 15,
794     .                        "Age de la neige surface No."//str2)
795            ierr = NF_ENDDEF(nid)
796        ELSE
797            PRINT*, "Trop de sous-mailles"
798            CALL abort
799        ENDIF
800#ifdef NC_DOUBLE
801        ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,agesno(1,nsrf))
802#else
803      ierr = NF_PUT_VAR_REAL (nid,nvarid,agesno(1,nsrf))
804#endif
805      ENDDO
806c
807      ierr = NF_REDEF (nid)
808#ifdef NC_DOUBLE
809      ierr = NF_DEF_VAR (nid, "ZMEA", NF_DOUBLE, 1, idim2,nvarid)
810#else
811      ierr = NF_DEF_VAR (nid, "ZMEA", NF_FLOAT, 1, idim2,nvarid)
812#endif
813      ierr = NF_ENDDEF(nid)
814#ifdef NC_DOUBLE
815      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zmea)
816#else
817      ierr = NF_PUT_VAR_REAL (nid,nvarid,zmea)
818#endif
819c
820      ierr = NF_REDEF (nid)
821#ifdef NC_DOUBLE
822      ierr = NF_DEF_VAR (nid, "ZSTD", NF_DOUBLE, 1, idim2,nvarid)
823#else
824      ierr = NF_DEF_VAR (nid, "ZSTD", NF_FLOAT, 1, idim2,nvarid)
825#endif
826      ierr = NF_ENDDEF(nid)
827#ifdef NC_DOUBLE
828      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zstd)
829#else
830      ierr = NF_PUT_VAR_REAL (nid,nvarid,zstd)
831#endif
832      ierr = NF_REDEF (nid)
833#ifdef NC_DOUBLE
834      ierr = NF_DEF_VAR (nid, "ZSIG", NF_DOUBLE, 1, idim2,nvarid)
835#else
836      ierr = NF_DEF_VAR (nid, "ZSIG", NF_FLOAT, 1, idim2,nvarid)
837#endif
838      ierr = NF_ENDDEF(nid)
839#ifdef NC_DOUBLE
840      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zsig)
841#else
842      ierr = NF_PUT_VAR_REAL (nid,nvarid,zsig)
843#endif
844      ierr = NF_REDEF (nid)
845#ifdef NC_DOUBLE
846      ierr = NF_DEF_VAR (nid, "ZGAM", NF_DOUBLE, 1, idim2,nvarid)
847#else
848      ierr = NF_DEF_VAR (nid, "ZGAM", NF_FLOAT, 1, idim2,nvarid)
849#endif
850      ierr = NF_ENDDEF(nid)
851#ifdef NC_DOUBLE
852      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zgam)
853#else
854      ierr = NF_PUT_VAR_REAL (nid,nvarid,zgam)
855#endif
856      ierr = NF_REDEF (nid)
857#ifdef NC_DOUBLE
858      ierr = NF_DEF_VAR (nid, "ZTHE", NF_DOUBLE, 1, idim2,nvarid)
859#else
860      ierr = NF_DEF_VAR (nid, "ZTHE", NF_FLOAT, 1, idim2,nvarid)
861#endif
862      ierr = NF_ENDDEF(nid)
863#ifdef NC_DOUBLE
864      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zthe)
865#else
866      ierr = NF_PUT_VAR_REAL (nid,nvarid,zthe)
867#endif
868      ierr = NF_REDEF (nid)
869#ifdef NC_DOUBLE
870      ierr = NF_DEF_VAR (nid, "ZPIC", NF_DOUBLE, 1, idim2,nvarid)
871#else
872      ierr = NF_DEF_VAR (nid, "ZPIC", NF_FLOAT, 1, idim2,nvarid)
873#endif
874      ierr = NF_ENDDEF(nid)
875#ifdef NC_DOUBLE
876      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zpic)
877#else
878      ierr = NF_PUT_VAR_REAL (nid,nvarid,zpic)
879#endif
880      ierr = NF_REDEF (nid)
881#ifdef NC_DOUBLE
882      ierr = NF_DEF_VAR (nid, "ZVAL", NF_DOUBLE, 1, idim2,nvarid)
883#else
884      ierr = NF_DEF_VAR (nid, "ZVAL", NF_FLOAT, 1, idim2,nvarid)
885#endif
886      ierr = NF_ENDDEF(nid)
887#ifdef NC_DOUBLE
888      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zval)
889#else
890      ierr = NF_PUT_VAR_REAL (nid,nvarid,zval)
891#endif
892      ierr = NF_REDEF (nid)
893#ifdef NC_DOUBLE
894      ierr = NF_DEF_VAR (nid, "RUGSREL", NF_DOUBLE, 1, idim2,nvarid)
895#else
896      ierr = NF_DEF_VAR (nid, "RUGSREL", NF_FLOAT, 1, idim2,nvarid)
897#endif
898      ierr = NF_ENDDEF(nid)
899#ifdef NC_DOUBLE
900      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rugsrel)
901#else
902      ierr = NF_PUT_VAR_REAL (nid,nvarid,rugsrel)
903#endif
904c
905      ierr = NF_REDEF (nid)
906#ifdef NC_DOUBLE
907      ierr = NF_DEF_VAR (nid, "TANCIEN", NF_DOUBLE, 1, idim3,nvarid)
908#else
909      ierr = NF_DEF_VAR (nid, "TANCIEN", NF_FLOAT, 1, idim3,nvarid)
910#endif
911      ierr = NF_ENDDEF(nid)
912#ifdef NC_DOUBLE
913      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,t_ancien)
914#else
915      ierr = NF_PUT_VAR_REAL (nid,nvarid,t_ancien)
916#endif
917c
918      ierr = NF_REDEF (nid)
919#ifdef NC_DOUBLE
920      ierr = NF_DEF_VAR (nid, "QANCIEN", NF_DOUBLE, 1, idim3,nvarid)
921#else
922      ierr = NF_DEF_VAR (nid, "QANCIEN", NF_FLOAT, 1, idim3,nvarid)
923#endif
924      ierr = NF_ENDDEF(nid)
925#ifdef NC_DOUBLE
926      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q_ancien)
927#else
928      ierr = NF_PUT_VAR_REAL (nid,nvarid,q_ancien)
929#endif
930c
931      ierr = NF_REDEF (nid)
932#ifdef NC_DOUBLE
933      ierr = NF_DEF_VAR (nid, "RUGMER", NF_DOUBLE, 1, idim2,nvarid)
934#else
935      ierr = NF_DEF_VAR (nid, "RUGMER", NF_FLOAT, 1, idim2,nvarid)
936#endif
937      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,
938     .                        "Longueur de rugosite sur mer")
939      ierr = NF_ENDDEF(nid)
940#ifdef NC_DOUBLE
941      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,frugs(1,is_oce))
942#else
943      ierr = NF_PUT_VAR_REAL (nid,nvarid,frugs(1,is_oce))
944#endif
945c
946      ierr = NF_REDEF (nid)
947#ifdef NC_DOUBLE
948      ierr = NF_DEF_VAR (nid, "CLWCON", NF_DOUBLE, 1, idim2,nvarid)
949#else
950      ierr = NF_DEF_VAR (nid, "CLWCON", NF_FLOAT, 1, idim2,nvarid)
951#endif
952      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,
953     .                        "Eau liquide convective")
954      ierr = NF_ENDDEF(nid)
955#ifdef NC_DOUBLE
956      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,clwcon)
957#else
958      ierr = NF_PUT_VAR_REAL (nid,nvarid,clwcon)
959#endif
960c
961      ierr = NF_REDEF (nid)
962#ifdef NC_DOUBLE
963      ierr = NF_DEF_VAR (nid, "RNEBCON", NF_DOUBLE, 1, idim2,nvarid)
964#else
965      ierr = NF_DEF_VAR (nid, "RNEBCON", NF_FLOAT, 1, idim2,nvarid)
966#endif
967      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,
968     .                        "Nebulosite convective")
969      ierr = NF_ENDDEF(nid)
970#ifdef NC_DOUBLE
971      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rnebcon)
972#else
973      ierr = NF_PUT_VAR_REAL (nid,nvarid,rnebcon)
974#endif
975c
976      ierr = NF_REDEF (nid)
977#ifdef NC_DOUBLE
978      ierr = NF_DEF_VAR (nid, "RATQS", NF_DOUBLE, 1, idim2,nvarid)
979#else
980      ierr = NF_DEF_VAR (nid, "RATQS", NF_FLOAT, 1, idim2,nvarid)
981#endif
982      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,
983     .                        "Ratqs")
984      ierr = NF_ENDDEF(nid)
985#ifdef NC_DOUBLE
986      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,ratqs)
987#else
988      ierr = NF_PUT_VAR_REAL (nid,nvarid,ratqs)
989#endif
990c
991c run_off_lic_0
992c
993      ierr = NF_REDEF (nid)
994#ifdef NC_DOUBLE
995      ierr=NF_DEF_VAR(nid,"RUNOFFLIC0",NF_DOUBLE,1,idim2,nvarid)
996#else
997      ierr=NF_DEF_VAR(nid,"RUNOFFLIC0",NF_FLOAT, 1,idim2,nvarid)
998#endif
999      ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28,
1000     .                        "Runofflic0")
1001      ierr = NF_ENDDEF(nid)
1002#ifdef NC_DOUBLE
1003      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,run_off_lic_0)
1004#else
1005      ierr = NF_PUT_VAR_REAL (nid,nvarid,run_off_lic_0)
1006#endif
1007c
1008c
1009      ierr = NF_CLOSE(nid)
1010c
1011      endif   ! phy_rank==0
1012c$OMP END MASTER
1013      RETURN
1014      END
Note: See TracBrowser for help on using the repository browser.