source: LMDZ4/branches/LMDZ4-dev/libf/phylmd/phys_output_write.h @ 1176

Last change on this file since 1176 was 1150, checked in by jghattas, 15 years ago

Ajoute possiblilite de forcer avec d'autre aersols avec le meme principe que pour les so4.

Par default la convergence est rempu avec flag_aersosol=1 + ok_ade=ok_aie=y. Exactement les memes resultats peuvent etre retrouver avec new_aod=n. Les resultats sont exactement les memes sans prise en compte aucun aerosol, avec ok_ade=ok_aie=n.

  • flag_aerosol indique quel aersosol ou combinasion a utiliser (=1 uniquement les SO4 comme avant)
  • les fichiers d'entree so4.runXXXX.cdf change du nom pour majescule SO4.runXXXX.cdf
  • readsulfate change du nom pour readaerosol qui trait tous les aerosols
  • radlwsw change du nom pour radlwsw_aero.
  • aeropt_2bands.F90 et aeropt_5wv.F90 correspond a un reecriture de aeropt.F (premier et deuxieme moitie respectivement)
  • aeropt.F est gardé pour retrouver la convergence si demande avec new_aod=false (=true default)
  • sw_aero est un version evolue de sw_lmdar4 (dans fichier radiation_ar4.F)

ACo + JG

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 41.1 KB
Line 
1      itau_w = itau_phy + itap
2
3      DO iff=1,nfiles
4
5       IF (clef_files(iff)) THEN
6             ndex2d = 0
7             ndex3d = 0
8
9!!! Champs 1D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10       IF (o_phis%flag(iff)<=lev_files(iff)) THEN
11         CALL histwrite_phy(nid_files(iff),
12     $                      o_phis%name,itau_w,pphis)
13       ENDIF
14
15       IF (o_aire%flag(iff)<=lev_files(iff)) THEN
16       CALL histwrite_phy(nid_files(iff),o_aire%name,itau_w,airephy)
17       ENDIF
18
19       IF (o_contfracATM%flag(iff)<=lev_files(iff)) THEN
20      DO i=1, klon
21       zx_tmp_fi2d(i)=pctsrf(i,is_ter)+pctsrf(i,is_lic)
22      ENDDO
23      CALL histwrite_phy(nid_files(iff),
24     $             o_contfracATM%name,itau_w,zx_tmp_fi2d)
25       ENDIF
26
27       IF (o_contfracOR%flag(iff)<=lev_files(iff)) THEN
28      CALL histwrite_phy(nid_files(iff),o_contfracOR%name,itau_w,
29     $                   pctsrf(:,is_ter))
30       ENDIF
31
32       IF (o_aireTER%flag(iff)<=lev_files(iff)) THEN
33      CALL histwrite_phy(nid_files(iff),
34     $                  o_aireTER%name,itau_w,paire_ter)
35       ENDIF
36
37!!! Champs 2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
38
39       IF (o_flat%flag(iff)<=lev_files(iff)) THEN
40      CALL histwrite_phy(nid_files(iff),o_flat%name,itau_w,zxfluxlat)
41       ENDIF
42
43       IF (o_slp%flag(iff)<=lev_files(iff)) THEN
44      CALL histwrite_phy(nid_files(iff),o_slp%name,itau_w,slp)
45       ENDIF
46
47       IF (o_tsol%flag(iff)<=lev_files(iff)) THEN
48      CALL histwrite_phy(nid_files(iff),o_tsol%name,itau_w,zxtsol)
49       ENDIF
50
51       IF (o_t2m%flag(iff)<=lev_files(iff)) THEN
52      CALL histwrite_phy(nid_files(iff),o_t2m%name,itau_w,zt2m)
53       ENDIF
54
55       IF (o_t2m_min%flag(iff)<=lev_files(iff)) THEN
56      CALL histwrite_phy(nid_files(iff),o_t2m_min%name,itau_w,zt2m)
57       ENDIF
58
59       IF (o_t2m_max%flag(iff)<=lev_files(iff)) THEN
60      CALL histwrite_phy(nid_files(iff),o_t2m_max%name,itau_w,zt2m)
61       ENDIF
62
63       IF (o_wind10m%flag(iff)<=lev_files(iff)) THEN
64      DO i=1, klon
65       zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
66      ENDDO
67      CALL histwrite_phy(nid_files(iff),
68     s                  o_wind10m%name,itau_w,zx_tmp_fi2d)
69       ENDIF
70
71       IF (o_wind10max%flag(iff)<=lev_files(iff)) THEN
72      DO i=1, klon
73       zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
74      ENDDO
75      CALL histwrite_phy(nid_files(iff),o_wind10max%name, 
76     $                   itau_w,zx_tmp_fi2d)
77       ENDIF
78
79       IF (o_sicf%flag(iff)<=lev_files(iff)) THEN
80      DO i = 1, klon
81         zx_tmp_fi2d(i) = pctsrf(i,is_sic)
82      ENDDO
83      CALL histwrite_phy(nid_files(iff),
84     $                   o_sicf%name,itau_w,zx_tmp_fi2d)
85       ENDIF
86
87       IF (o_q2m%flag(iff)<=lev_files(iff)) THEN
88      CALL histwrite_phy(nid_files(iff),o_q2m%name,itau_w,zq2m)
89       ENDIF
90
91       IF (o_u10m%flag(iff)<=lev_files(iff)) THEN
92      CALL histwrite_phy(nid_files(iff),o_u10m%name,itau_w,zu10m)
93       ENDIF
94
95       IF (o_v10m%flag(iff)<=lev_files(iff)) THEN
96      CALL histwrite_phy(nid_files(iff),o_v10m%name,itau_w,zv10m)
97       ENDIF
98
99       IF (o_psol%flag(iff)<=lev_files(iff)) THEN
100      DO i = 1, klon
101         zx_tmp_fi2d(i) = paprs(i,1)
102      ENDDO
103      CALL histwrite_phy(nid_files(iff),
104     s                   o_psol%name,itau_w,zx_tmp_fi2d)
105       ENDIF
106
107       IF (o_qsurf%flag(iff)<=lev_files(iff)) THEN
108      CALL histwrite_phy(nid_files(iff),o_qsurf%name,itau_w,zxqsurf)
109       ENDIF
110
111       if (.not. ok_veget) then
112         IF (o_qsol%flag(iff)<=lev_files(iff)) THEN
113        CALL histwrite_phy(nid_files(iff),o_qsol%name,itau_w,qsol)
114         ENDIF
115       endif
116
117      IF (o_precip%flag(iff)<=lev_files(iff)) THEN
118       DO i = 1, klon
119         zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
120       ENDDO
121      CALL histwrite_phy(nid_files(iff),o_precip%name,
122     s                   itau_w,zx_tmp_fi2d)
123      ENDIF
124
125       IF (o_ndayrain%flag(iff)<=lev_files(iff)) THEN
126      CALL histwrite_phy(nid_files(iff),o_ndayrain%name,
127     s                   itau_w,nday_rain)
128       ENDIF
129
130      IF (o_plul%flag(iff)<=lev_files(iff)) THEN
131       DO i = 1, klon
132         zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i)
133       ENDDO
134      CALL histwrite_phy(nid_files(iff),o_plul%name,itau_w,zx_tmp_fi2d)
135      ENDIF
136
137      IF (o_pluc%flag(iff)<=lev_files(iff)) THEN
138      DO i = 1, klon
139         zx_tmp_fi2d(i) = rain_con(i) + snow_con(i)
140      ENDDO
141      CALL histwrite_phy(nid_files(iff),o_pluc%name,itau_w,zx_tmp_fi2d)
142      ENDIF
143
144       IF (o_snow%flag(iff)<=lev_files(iff)) THEN
145      CALL histwrite_phy(nid_files(iff),o_snow%name,itau_w,snow_fall)
146       ENDIF
147
148       IF (o_evap%flag(iff)<=lev_files(iff)) THEN
149      CALL histwrite_phy(nid_files(iff),o_evap%name,itau_w,evap)
150       ENDIF
151
152       IF (o_tops%flag(iff)<=lev_files(iff)) THEN
153      CALL histwrite_phy(nid_files(iff),o_tops%name,itau_w,topsw)
154       ENDIF
155
156       IF (o_tops0%flag(iff)<=lev_files(iff)) THEN
157      CALL histwrite_phy(nid_files(iff),o_tops0%name,itau_w,topsw0)
158       ENDIF
159
160       IF (o_topl%flag(iff)<=lev_files(iff)) THEN
161      CALL histwrite_phy(nid_files(iff),o_topl%name,itau_w,toplw)
162       ENDIF
163
164       IF (o_topl0%flag(iff)<=lev_files(iff)) THEN
165      CALL histwrite_phy(nid_files(iff),o_topl0%name,itau_w,toplw0)
166       ENDIF
167
168       IF (o_SWupTOA%flag(iff)<=lev_files(iff)) THEN
169      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 )
170      CALL histwrite_phy(nid_files(iff),o_SWupTOA%name,
171     s                     itau_w,zx_tmp_fi2d)
172       ENDIF
173
174       IF (o_SWupTOAclr%flag(iff)<=lev_files(iff)) THEN
175      zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, klevp1 )
176      CALL histwrite_phy(nid_files(iff), 
177     $                  o_SWupTOAclr%name,itau_w,zx_tmp_fi2d)
178       ENDIF
179
180       IF (o_SWdnTOA%flag(iff)<=lev_files(iff)) THEN
181      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 )
182      CALL histwrite_phy(nid_files(iff),
183     s                  o_SWdnTOA%name,itau_w,zx_tmp_fi2d)
184       ENDIF
185
186       IF (o_SWdnTOAclr%flag(iff)<=lev_files(iff)) THEN
187      zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, klevp1 )
188      CALL histwrite_phy(nid_files(iff), 
189     $                  o_SWdnTOAclr%name,itau_w,zx_tmp_fi2d)
190       ENDIF
191
192       IF (o_SWup200%flag(iff)<=lev_files(iff)) THEN
193      CALL histwrite_phy(nid_files(iff),o_SWup200%name,itau_w,SWup200)
194       ENDIF
195
196       IF (o_SWup200clr%flag(iff)<=lev_files(iff)) THEN
197      CALL histwrite_phy(nid_files(iff),
198     s                   o_SWup200clr%name,itau_w,SWup200clr)
199       ENDIF
200
201       IF (o_SWdn200%flag(iff)<=lev_files(iff)) THEN
202      CALL histwrite_phy(nid_files(iff),o_SWdn200%name,itau_w,SWdn200)
203       ENDIF
204
205       IF (o_SWdn200clr%flag(iff)<=lev_files(iff)) THEN
206      CALL histwrite_phy(nid_files(iff),
207     s                o_SWdn200clr%name,itau_w,SWdn200clr)
208       ENDIF
209
210       IF (o_LWup200%flag(iff)<=lev_files(iff)) THEN
211      CALL histwrite_phy(nid_files(iff),o_LWup200%name,itau_w,LWup200)
212       ENDIF
213
214       IF (o_LWup200clr%flag(iff)<=lev_files(iff)) THEN
215      CALL histwrite_phy(nid_files(iff),
216     s                   o_LWup200clr%name,itau_w,LWup200clr)
217       ENDIF
218
219       IF (o_LWdn200%flag(iff)<=lev_files(iff)) THEN
220      CALL histwrite_phy(nid_files(iff),
221     s                   o_LWdn200%name,itau_w,zx_tmp_fi2d)
222       ENDIF
223
224       IF (o_LWdn200clr%flag(iff)<=lev_files(iff)) THEN
225      CALL histwrite_phy(nid_files(iff),
226     s                  o_LWdn200clr%name,itau_w,zx_tmp_fi2d)
227       ENDIF
228
229       IF (o_sols%flag(iff)<=lev_files(iff)) THEN
230      CALL histwrite_phy(nid_files(iff),o_sols%name,itau_w,solsw)
231       ENDIF
232
233       IF (o_sols0%flag(iff)<=lev_files(iff)) THEN
234      CALL histwrite_phy(nid_files(iff),o_sols0%name,itau_w,solsw0)
235       ENDIF
236
237       IF (o_soll%flag(iff)<=lev_files(iff)) THEN
238      CALL histwrite_phy(nid_files(iff),o_soll%name,itau_w,sollw)
239       ENDIF
240
241       IF (o_radsol%flag(iff)<=lev_files(iff)) THEN
242      CALL histwrite_phy(nid_files(iff),o_radsol%name,itau_w,radsol)
243       ENDIF
244
245       IF (o_soll0%flag(iff)<=lev_files(iff)) THEN
246      CALL histwrite_phy(nid_files(iff),o_soll0%name,itau_w,sollw0)
247       ENDIF
248
249       IF (o_SWupSFC%flag(iff)<=lev_files(iff)) THEN
250      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 )
251      CALL histwrite_phy(nid_files(iff),
252     s               o_SWupSFC%name,itau_w,zx_tmp_fi2d)
253       ENDIF
254
255       IF (o_SWupSFCclr%flag(iff)<=lev_files(iff)) THEN
256      zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 1 )
257      CALL histwrite_phy(nid_files(iff), 
258     $                   o_SWupSFCclr%name,itau_w,zx_tmp_fi2d)
259       ENDIF
260
261       IF (o_SWdnSFC%flag(iff)<=lev_files(iff)) THEN
262      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 )
263      CALL histwrite_phy(nid_files(iff), 
264     $                   o_SWdnSFC%name,itau_w,zx_tmp_fi2d)
265       ENDIF
266
267       IF (o_SWdnSFCclr%flag(iff)<=lev_files(iff)) THEN
268      zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 1 )
269      CALL histwrite_phy(nid_files(iff), 
270     $                  o_SWdnSFCclr%name,itau_w,zx_tmp_fi2d)
271       ENDIF
272
273       IF (o_LWupSFC%flag(iff)<=lev_files(iff)) THEN
274      zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon)
275      CALL histwrite_phy(nid_files(iff),
276     $                    o_LWupSFC%name,itau_w,zx_tmp_fi2d)
277       ENDIF
278
279       IF (o_LWdnSFC%flag(iff)<=lev_files(iff)) THEN
280      CALL histwrite_phy(nid_files(iff),
281     $                   o_LWdnSFC%name,itau_w,sollwdown)
282       ENDIF
283
284       sollwdownclr(1:klon) = -1.*lwdn0(1:klon,1)
285       IF (o_LWupSFCclr%flag(iff)<=lev_files(iff)) THEN
286      zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon)
287      CALL histwrite_phy(nid_files(iff),
288     $                   o_LWupSFCclr%name,itau_w,zx_tmp_fi2d)
289       ENDIF
290
291       IF (o_LWdnSFCclr%flag(iff)<=lev_files(iff)) THEN
292      CALL histwrite_phy(nid_files(iff),
293     $                   o_LWdnSFCclr%name,itau_w,sollwdownclr)
294       ENDIF
295
296       IF (o_bils%flag(iff)<=lev_files(iff)) THEN
297      CALL histwrite_phy(nid_files(iff),o_bils%name,itau_w,bils)
298       ENDIF
299
300       IF (o_sens%flag(iff)<=lev_files(iff)) THEN
301      zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
302      CALL histwrite_phy(nid_files(iff),o_sens%name,itau_w,zx_tmp_fi2d)
303       ENDIF
304
305       IF (o_fder%flag(iff)<=lev_files(iff)) THEN
306      CALL histwrite_phy(nid_files(iff),o_fder%name,itau_w,fder)
307       ENDIF
308
309       IF (o_ffonte%flag(iff)<=lev_files(iff)) THEN
310       CALL histwrite_phy(nid_files(iff),o_ffonte%name,itau_w,zxffonte)
311       ENDIF
312
313       IF (o_fqcalving%flag(iff)<=lev_files(iff)) THEN
314       CALL histwrite_phy(nid_files(iff),
315     $                    o_fqcalving%name,itau_w,zxfqcalving)
316       ENDIF
317
318       IF (o_fqfonte%flag(iff)<=lev_files(iff)) THEN
319       CALL histwrite_phy(nid_files(iff),
320     $                   o_fqfonte%name,itau_w,zxfqfonte)
321       ENDIF
322
323         DO nsrf = 1, nbsrf
324!           IF(nsrf.GE.2) THEN
325            IF (o_pourc_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
326            zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
327            CALL histwrite_phy(nid_files(iff),
328     $                     o_pourc_srf(nsrf)%name,itau_w,
329     $                     zx_tmp_fi2d)
330            ENDIF
331
332          IF (o_fract_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
333          zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
334          CALL histwrite_phy(nid_files(iff),
335     $                  o_fract_srf(nsrf)%name,itau_w,
336     $                  zx_tmp_fi2d)
337          ENDIF
338!         ENDIF !nsrf.GT.2
339
340        IF (o_taux_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
341        zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
342        CALL histwrite_phy(nid_files(iff),
343     $                     o_taux_srf(nsrf)%name,itau_w,
344     $                     zx_tmp_fi2d)
345        ENDIF
346
347        IF (o_tauy_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN           
348        zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
349        CALL histwrite_phy(nid_files(iff),
350     $                    o_tauy_srf(nsrf)%name,itau_w,
351     $                    zx_tmp_fi2d)
352        ENDIF
353
354        IF (o_tsol_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
355        zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
356        CALL histwrite_phy(nid_files(iff),
357     $                   o_tsol_srf(nsrf)%name,itau_w,
358     $      zx_tmp_fi2d)
359        ENDIF
360
361      IF (o_u10m_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
362      zx_tmp_fi2d(1 : klon) = u10m(1 : klon, nsrf)
363      CALL histwrite_phy(nid_files(iff),o_u10m_srf(nsrf)%name,
364     $                 itau_w,zx_tmp_fi2d)
365      ENDIF
366
367      IF (o_v10m_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
368      zx_tmp_fi2d(1 : klon) = v10m(1 : klon, nsrf)
369      CALL histwrite_phy(nid_files(iff),o_v10m_srf(nsrf)%name,
370     $              itau_w,zx_tmp_fi2d)
371      ENDIF
372 
373      IF (o_t2m_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
374      zx_tmp_fi2d(1 : klon) = t2m(1 : klon, nsrf)
375      CALL histwrite_phy(nid_files(iff),o_t2m_srf(nsrf)%name,
376     $           itau_w,zx_tmp_fi2d)
377      ENDIF
378
379       IF (o_sens_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
380       zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
381       CALL histwrite_phy(nid_files(iff),
382     $                    o_sens_srf(nsrf)%name,itau_w,
383     $      zx_tmp_fi2d)
384       ENDIF
385
386        IF (o_lat_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
387        zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
388        CALL histwrite_phy(nid_files(iff),
389     $                 o_lat_srf(nsrf)%name,itau_w,
390     $                                   zx_tmp_fi2d)
391          ENDIF
392
393        IF (o_flw_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
394        zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf)
395        CALL histwrite_phy(nid_files(iff),
396     $                     o_flw_srf(nsrf)%name,itau_w,
397     $      zx_tmp_fi2d)
398        ENDIF
399
400        IF (o_fsw_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
401        zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf)
402        CALL histwrite_phy(nid_files(iff),
403     $                   o_fsw_srf(nsrf)%name,itau_w,
404     $      zx_tmp_fi2d)
405        ENDIF
406
407        IF (o_wbils_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
408        zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf)
409        CALL histwrite_phy(nid_files(iff),
410     $                   o_wbils_srf(nsrf)%name,itau_w,
411     $      zx_tmp_fi2d)
412        ENDIF
413
414        IF (o_wbilo_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
415        zx_tmp_fi2d(1 : klon) = wfbilo( 1 : klon, nsrf)
416        CALL histwrite_phy(nid_files(iff),
417     $                    o_wbilo_srf(nsrf)%name,itau_w,
418     $      zx_tmp_fi2d)
419        ENDIF
420
421       if (iflag_pbl>1 .and. lev_histday.gt.10 ) then
422        IF (o_tke_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
423        CALL histwrite_phy(nid_files(iff),
424     $                   o_tke_srf(nsrf)%name,itau_w,
425     $                    pbl_tke(:,1:klev,nsrf))
426       ENDIF
427
428        IF (o_tke_max_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
429        CALL histwrite_phy(nid_files(iff),
430     $                    o_tke_max_srf(nsrf)%name,itau_w,
431     $      pbl_tke(:,1:klev,nsrf))
432        ENDIF
433       endif
434      ENDDO
435
436        IF (o_cdrm%flag(iff)<=lev_files(iff)) THEN
437      CALL histwrite_phy(nid_files(iff),o_cdrm%name,itau_w,cdragm)
438        ENDIF
439
440        IF (o_cdrh%flag(iff)<=lev_files(iff)) THEN
441      CALL histwrite_phy(nid_files(iff),o_cdrh%name,itau_w,cdragh)
442        ENDIF
443
444        IF (o_cldl%flag(iff)<=lev_files(iff)) THEN
445      CALL histwrite_phy(nid_files(iff),o_cldl%name,itau_w,cldl)
446        ENDIF
447
448        IF (o_cldm%flag(iff)<=lev_files(iff)) THEN
449      CALL histwrite_phy(nid_files(iff),o_cldm%name,itau_w,cldm)
450        ENDIF
451
452        IF (o_cldh%flag(iff)<=lev_files(iff)) THEN
453      CALL histwrite_phy(nid_files(iff),o_cldh%name,itau_w,cldh)
454        ENDIF
455
456        IF (o_cldt%flag(iff)<=lev_files(iff)) THEN
457      CALL histwrite_phy(nid_files(iff),o_cldt%name, 
458     &                   itau_w,cldt*100)
459        ENDIF
460
461        IF (o_cldq%flag(iff)<=lev_files(iff)) THEN
462      CALL histwrite_phy(nid_files(iff),o_cldq%name,itau_w,cldq)
463        ENDIF
464
465        IF (o_lwp%flag(iff)<=lev_files(iff)) THEN
466      zx_tmp_fi2d(1:klon) = flwp(1:klon)
467      CALL histwrite_phy(nid_files(iff),
468     s                   o_lwp%name,itau_w,zx_tmp_fi2d)
469        ENDIF
470
471        IF (o_iwp%flag(iff)<=lev_files(iff)) THEN
472      zx_tmp_fi2d(1:klon) = fiwp(1:klon)
473      CALL histwrite_phy(nid_files(iff),
474     s                    o_iwp%name,itau_w,zx_tmp_fi2d)
475        ENDIF
476
477        IF (o_ue%flag(iff)<=lev_files(iff)) THEN
478      CALL histwrite_phy(nid_files(iff),o_ue%name,itau_w,ue)
479        ENDIF
480
481        IF (o_ve%flag(iff)<=lev_files(iff)) THEN
482      CALL histwrite_phy(nid_files(iff),o_ve%name,itau_w,ve)
483        ENDIF
484
485        IF (o_uq%flag(iff)<=lev_files(iff)) THEN
486      CALL histwrite_phy(nid_files(iff),o_uq%name,itau_w,uq)
487        ENDIF
488
489        IF (o_vq%flag(iff)<=lev_files(iff)) THEN
490      CALL histwrite_phy(nid_files(iff),o_vq%name,itau_w,vq)
491        ENDIF
492
493      IF(iflag_con.GE.3) THEN ! sb
494        IF (o_cape%flag(iff)<=lev_files(iff)) THEN
495      CALL histwrite_phy(nid_files(iff),o_cape%name,itau_w,cape)
496        ENDIF
497
498        IF (o_pbase%flag(iff)<=lev_files(iff)) THEN
499      CALL histwrite_phy(nid_files(iff),o_pbase%name,itau_w,pbase)
500        ENDIF
501
502        IF (o_ptop%flag(iff)<=lev_files(iff)) THEN
503      CALL histwrite_phy(nid_files(iff),o_ptop%name,itau_w,ema_pct)
504        ENDIF
505
506        IF (o_fbase%flag(iff)<=lev_files(iff)) THEN
507      CALL histwrite_phy(nid_files(iff),o_fbase%name,itau_w,ema_cbmf)
508        ENDIF
509
510        IF (o_prw%flag(iff)<=lev_files(iff)) THEN
511      CALL histwrite_phy(nid_files(iff),o_prw%name,itau_w,prw)
512        ENDIF
513
514      IF (o_cape_max%flag(iff)<=lev_files(iff)) THEN
515      CALL histwrite_phy(nid_files(iff),o_cape_max%name,itau_w,cape)
516      ENDIF
517
518       IF (o_upwd%flag(iff)<=lev_files(iff)) THEN
519      CALL histwrite_phy(nid_files(iff),o_upwd%name,itau_w,upwd)
520       ENDIF
521
522       IF (o_Ma%flag(iff)<=lev_files(iff)) THEN
523      CALL histwrite_phy(nid_files(iff),o_Ma%name,itau_w,Ma)
524       ENDIF
525
526       IF (o_dnwd%flag(iff)<=lev_files(iff)) THEN
527      CALL histwrite_phy(nid_files(iff),o_dnwd%name,itau_w,dnwd)
528       ENDIF
529
530       IF (o_dnwd0%flag(iff)<=lev_files(iff)) THEN
531      CALL histwrite_phy(nid_files(iff),o_dnwd0%name,itau_w,dnwd0)
532       ENDIF
533
534      ENDIF !iflag_con .GE. 3
535
536        IF (o_s_pblh%flag(iff)<=lev_files(iff)) THEN
537      CALL histwrite_phy(nid_files(iff),o_s_pblh%name,itau_w,s_pblh)
538        ENDIF
539
540        IF (o_s_pblt%flag(iff)<=lev_files(iff)) THEN
541      CALL histwrite_phy(nid_files(iff),o_s_pblt%name,itau_w,s_pblt)
542        ENDIF
543
544        IF (o_s_lcl%flag(iff)<=lev_files(iff)) THEN
545      CALL histwrite_phy(nid_files(iff),o_s_lcl%name,itau_w,s_lcl)
546        ENDIF
547
548        IF (o_s_capCL%flag(iff)<=lev_files(iff)) THEN
549      CALL histwrite_phy(nid_files(iff),o_s_capCL%name,itau_w,s_capCL)
550        ENDIF
551
552        IF (o_s_oliqCL%flag(iff)<=lev_files(iff)) THEN
553      CALL histwrite_phy(nid_files(iff),o_s_oliqCL%name,itau_w,s_oliqCL)
554        ENDIF
555
556        IF (o_s_cteiCL%flag(iff)<=lev_files(iff)) THEN
557      CALL histwrite_phy(nid_files(iff),o_s_cteiCL%name,itau_w,s_cteiCL)
558        ENDIF
559
560        IF (o_s_therm%flag(iff)<=lev_files(iff)) THEN
561      CALL histwrite_phy(nid_files(iff),o_s_therm%name,itau_w,s_therm)
562        ENDIF
563
564        IF (o_s_trmb1%flag(iff)<=lev_files(iff)) THEN
565      CALL histwrite_phy(nid_files(iff),o_s_trmb1%name,itau_w,s_trmb1)
566        ENDIF
567
568        IF (o_s_trmb2%flag(iff)<=lev_files(iff)) THEN
569      CALL histwrite_phy(nid_files(iff),o_s_trmb2%name,itau_w,s_trmb2)
570        ENDIF
571
572        IF (o_s_trmb3%flag(iff)<=lev_files(iff)) THEN
573      CALL histwrite_phy(nid_files(iff),o_s_trmb3%name,itau_w,s_trmb3)
574        ENDIF
575
576! Champs interpolles sur des niveaux de pression
577! if=1 on ecrit u v w phi sur 850 700 500 200 au niv 1
578! if=2 on ecrit w et ph 500 seulement au niv 1
579!        et u v sur 850 700 500 200
580! if=3 on ecrit ph a 500 seulement au niv 1
581!      on ecrit u v t q a 850 700 500 200 au niv 3
582
583        ll=0
584        DO k=1, nlevSTD
585         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
586         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
587         IF(bb2.EQ."850".OR.bb2.EQ."700".OR.
588     $      bb2.EQ."500".OR.bb2.EQ."200") THEN
589
590! a refaire correctement !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
591          ll=ll+1
592       IF (o_uSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
593       CALL histwrite_phy(nid_files(iff),o_uSTDlevs(ll)%name,
594     &                    itau_w,uwriteSTD(:,k,iff))
595       ENDIF
596
597       IF (o_vSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
598      CALL histwrite_phy(nid_files(iff),o_vSTDlevs(ll)%name, 
599     &                   itau_w,vwriteSTD(:,k,iff))
600       ENDIF
601
602       IF (o_wSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
603      CALL histwrite_phy(nid_files(iff),o_wSTDlevs(ll)%name,
604     &                    itau_w,wwriteSTD(:,k,iff))
605       ENDIF
606
607       IF (o_phiSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
608      CALL histwrite_phy(nid_files(iff),o_phiSTDlevs(ll)%name,
609     &               itau_w,phiwriteSTD(:,k,iff))
610       ENDIF
611
612       IF (o_qSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
613      CALL histwrite_phy(nid_files(iff),o_qSTDlevs(ll)%name,
614     &                   itau_w, qwriteSTD(:,k,iff))
615       ENDIF
616
617       IF (o_tSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
618      CALL histwrite_phy(nid_files(iff),o_tSTDlevs(ll)%name,
619     &                   itau_w, twriteSTD(:,k,iff))
620       ENDIF
621
622       ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
623       ENDDO
624
625      IF (o_t_oce_sic%flag(iff)<=lev_files(iff)) THEN
626      DO i=1, klon
627       IF (pctsrf(i,is_oce).GT.epsfra.OR.
628     $     pctsrf(i,is_sic).GT.epsfra) THEN
629        zx_tmp_fi2d(i) = (ftsol(i, is_oce) * pctsrf(i,is_oce)+
630     $                   ftsol(i, is_sic) * pctsrf(i,is_sic))/
631     $                   (pctsrf(i,is_oce)+pctsrf(i,is_sic))
632       ELSE
633        zx_tmp_fi2d(i) = 273.15
634       ENDIF
635      ENDDO
636      CALL histwrite_phy(nid_files(iff),
637     s                   o_t_oce_sic%name,itau_w,zx_tmp_fi2d)
638      ENDIF
639
640! Couplage convection-couche limite
641      IF (iflag_con.GE.3) THEN
642      IF (iflag_coupl.EQ.1) THEN
643       IF (o_ale_bl%flag(iff)<=lev_files(iff)) THEN
644       CALL histwrite_phy(nid_files(iff),o_ale_bl%name,itau_w,ale_bl)
645       ENDIF
646       IF (o_alp_bl%flag(iff)<=lev_files(iff)) THEN
647       CALL histwrite_phy(nid_files(iff),o_alp_bl%name,itau_w,alp_bl)
648       ENDIF
649      ENDIF !iflag_coupl.EQ.1
650      ENDIF !(iflag_con.GE.3)
651
652! Wakes
653      IF (iflag_con.EQ.3) THEN
654      IF (iflag_wake.EQ.1) THEN
655       IF (o_ale_wk%flag(iff)<=lev_files(iff)) THEN
656       CALL histwrite_phy(nid_files(iff),o_ale_wk%name,itau_w,ale_wake)
657       ENDIF
658       IF (o_alp_wk%flag(iff)<=lev_files(iff)) THEN
659       CALL histwrite_phy(nid_files(iff),o_alp_wk%name,itau_w,alp_wake)
660       ENDIF
661
662       IF (o_ale%flag(iff)<=lev_files(iff)) THEN
663       CALL histwrite_phy(nid_files(iff),o_ale%name,itau_w,ale)
664       ENDIF
665       IF (o_alp%flag(iff)<=lev_files(iff)) THEN
666       CALL histwrite_phy(nid_files(iff),o_alp%name,itau_w,alp)
667       ENDIF
668       IF (o_cin%flag(iff)<=lev_files(iff)) THEN
669       CALL histwrite_phy(nid_files(iff),o_cin%name,itau_w,cin)
670       ENDIF
671       IF (o_wape%flag(iff)<=lev_files(iff)) THEN
672       CALL histwrite_phy(nid_files(iff),o_WAPE%name,itau_w,wake_pe)
673       ENDIF
674       IF (o_wake_h%flag(iff)<=lev_files(iff)) THEN
675      CALL histwrite_phy(nid_files(iff),o_wake_h%name,itau_w,wake_h)
676       ENDIF
677
678       IF (o_wake_s%flag(iff)<=lev_files(iff)) THEN
679      CALL histwrite_phy(nid_files(iff),o_wake_s%name,itau_w,wake_s)
680       ENDIF
681
682        IF (o_wake_deltat%flag(iff)<=lev_files(iff)) THEN
683       CALL histwrite_phy(nid_files(iff),o_wake_deltat%name,
684     $                     itau_w,wake_deltat)
685        ENDIF
686
687        IF (o_wake_deltaq%flag(iff)<=lev_files(iff)) THEN
688       CALL histwrite_phy(nid_files(iff),o_wake_deltaq%name,
689     $                    itau_w,wake_deltaq)
690        ENDIF
691
692        IF (o_wake_omg%flag(iff)<=lev_files(iff)) THEN
693       CALL histwrite_phy(nid_files(iff),
694     s                    o_wake_omg%name,itau_w,wake_omg)
695        ENDIF
696
697         IF (o_dtwak%flag(iff)<=lev_files(iff)) THEN
698           zx_tmp_fi3d(1:klon,1:klev)=d_t_wake(1:klon,1:klev)
699     &                                        /pdtphys
700           CALL histwrite_phy(nid_files(iff),
701     &                       o_dtwak%name,itau_w,zx_tmp_fi3d)
702         ENDIF
703
704        IF (o_dqwak%flag(iff)<=lev_files(iff)) THEN
705        zx_tmp_fi3d(1:klon,1:klev)=d_q_wake(1:klon,1:klev)/pdtphys
706        CALL histwrite_phy(nid_files(iff),
707     &                     o_dqwak%name,itau_w,zx_tmp_fi3d)
708        ENDIF
709      ENDIF ! iflag_wake.EQ.1
710
711        IF (o_Vprecip%flag(iff)<=lev_files(iff)) THEN
712       CALL histwrite_phy(nid_files(iff),o_Vprecip%name,itau_w,Vprecip)
713        ENDIF
714
715        IF (o_ftd%flag(iff)<=lev_files(iff)) THEN
716       CALL histwrite_phy(nid_files(iff),o_ftd%name,itau_w,ftd)
717        ENDIF
718
719        IF (o_fqd%flag(iff)<=lev_files(iff)) THEN
720       CALL histwrite_phy(nid_files(iff),o_fqd%name,itau_w,fqd)
721        ENDIF
722      ENDIF !(iflag_con.EQ.3) 
723 
724      IF (type_ocean=='slab ') THEN
725      IF ( o_slab_bils%flag(iff)<=lev_files(iff)) 
726     $     CALL histwrite_phy(
727     $     nid_files(iff),o_slab_bils%name,itau_w,slab_wfbils)
728
729      ENDIF !type_ocean == force/slab
730
731      IF (o_weakinv%flag(iff)<=lev_files(iff)) THEN
732      CALL histwrite_phy(nid_files(iff),
733     s                  o_weakinv%name,itau_w,weak_inversion)
734      ENDIF
735
736      IF (o_dthmin%flag(iff)<=lev_files(iff)) THEN
737      CALL histwrite_phy(nid_files(iff),o_dthmin%name,itau_w,dthmin)
738      ENDIF
739
740       IF (o_cldtau%flag(iff)<=lev_files(iff)) THEN
741       CALL histwrite_phy(nid_files(iff),o_cldtau%name,itau_w,cldtau)
742       ENDIF
743
744       IF (o_cldemi%flag(iff)<=lev_files(iff)) THEN
745       CALL histwrite_phy(nid_files(iff),o_cldemi%name,itau_w,cldemi)
746       ENDIF
747
748!      IF (o_pr_con_l%flag(iff)<=lev_files(iff)) THEN
749!      CALL histwrite_phy(nid_files(iff),o_pmflxr%name,itau_w,pmflxr)
750!      ENDIF
751
752!      IF (o_pr_con_i%flag(iff)<=lev_files(iff)) THEN
753!      CALL histwrite_phy(nid_files(iff),o_pmflxs%name,itau_w,pmflxs)
754!      ENDIF
755
756!      IF (o_pr_lsc_l%flag(iff)<=lev_files(iff)) THEN
757!      CALL histwrite_phy(nid_files(iff),o_prfl%name,itau_w,prfl)
758!      ENDIF
759
760!      IF (o_pr_lsc_i%flag(iff)<=lev_files(iff)) THEN
761!      CALL histwrite_phy(nid_files(iff),o_psfl%name,itau_w,psfl)
762!      ENDIF
763
764      IF (o_rh2m%flag(iff)<=lev_files(iff)) THEN
765      DO i=1, klon
766       zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
767      ENDDO
768      CALL histwrite_phy(nid_files(iff),o_rh2m%name,itau_w,zx_tmp_fi2d)
769      ENDIF
770
771      IF (o_qsat2m%flag(iff)<=lev_files(iff)) THEN
772      CALL histwrite_phy(nid_files(iff),o_qsat2m%name,itau_w,qsat2m)
773      ENDIF
774
775      IF (o_tpot%flag(iff)<=lev_files(iff)) THEN
776      CALL histwrite_phy(nid_files(iff),o_tpot%name,itau_w,tpot)
777      ENDIF
778
779       IF (o_tpote%flag(iff)<=lev_files(iff)) THEN
780      CALL histwrite_phy(nid_files(iff),o_tpote%name,itau_w,tpote)
781       ENDIF
782
783      IF (o_SWnetOR%flag(iff)<=lev_files(iff)) THEN
784      zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, is_ter)
785      CALL histwrite_phy(nid_files(iff),
786     s                   o_SWnetOR%name,itau_w, zx_tmp_fi2d)
787      ENDIF
788
789      IF (o_SWdownOR%flag(iff)<=lev_files(iff)) THEN
790      zx_tmp_fi2d(1:klon) = solsw(1:klon)/(1.-albsol1(1:klon))
791      CALL histwrite_phy(nid_files(iff),
792     s                   o_SWdownOR%name,itau_w, zx_tmp_fi2d)
793      ENDIF
794
795      IF (o_LWdownOR%flag(iff)<=lev_files(iff)) THEN
796      CALL histwrite_phy(nid_files(iff),
797     s                  o_LWdownOR%name,itau_w,sollwdown)
798      ENDIF
799
800      IF (o_snowl%flag(iff)<=lev_files(iff)) THEN
801      CALL histwrite_phy(nid_files(iff),o_snowl%name,itau_w,snow_lsc)
802      ENDIF
803
804      IF (o_solldown%flag(iff)<=lev_files(iff)) THEN
805      CALL histwrite_phy(nid_files(iff),
806     s                   o_solldown%name,itau_w,sollwdown)
807      ENDIF
808
809      IF (o_dtsvdfo%flag(iff)<=lev_files(iff)) THEN
810      CALL histwrite_phy(nid_files(iff),
811     s                 o_dtsvdfo%name,itau_w,d_ts(:,is_oce))
812      ENDIF
813
814      IF (o_dtsvdft%flag(iff)<=lev_files(iff)) THEN
815      CALL histwrite_phy(nid_files(iff),
816     s                   o_dtsvdft%name,itau_w,d_ts(:,is_ter))
817      ENDIF
818
819       IF (o_dtsvdfg%flag(iff)<=lev_files(iff)) THEN
820        CALL histwrite_phy(nid_files(iff),
821     $                   o_dtsvdfg%name,itau_w, d_ts(:,is_lic))
822       ENDIF
823
824       IF (o_dtsvdfi%flag(iff)<=lev_files(iff)) THEN
825      CALL histwrite_phy(nid_files(iff),
826     s                   o_dtsvdfi%name,itau_w,d_ts(:,is_sic))
827       ENDIF
828
829       IF (o_rugs%flag(iff)<=lev_files(iff)) THEN
830      CALL histwrite_phy(nid_files(iff),o_rugs%name,itau_w,zxrugs)
831       ENDIF
832
833       IF (ok_ade) THEN
834          IF (o_topswad%flag(iff)<=lev_files(iff)) THEN
835             CALL histwrite_phy(nid_files(iff),o_topswad%name,itau_w,
836     $            topswad_aero)
837          ENDIF
838          IF (o_solswad%flag(iff)<=lev_files(iff)) THEN
839             CALL histwrite_phy(nid_files(iff),o_solswad%name,itau_w,
840     $            solswad_aero)
841          ENDIF
842       ENDIF
843
844       IF (ok_aie) THEN
845          IF (o_topswai%flag(iff)<=lev_files(iff)) THEN
846             CALL histwrite_phy(nid_files(iff),o_topswai%name,itau_w,
847     $            topswai_aero)
848          ENDIF
849          IF (o_solswai%flag(iff)<=lev_files(iff)) THEN
850             CALL histwrite_phy(nid_files(iff),o_solswai%name,itau_w,
851     $            solswai_aero)
852          ENDIF
853       ENDIF
854
855! Champs 3D:
856       IF (o_lwcon%flag(iff)<=lev_files(iff)) THEN
857      CALL histwrite_phy(nid_files(iff),o_lwcon%name,itau_w,flwc)
858       ENDIF
859
860       IF (o_iwcon%flag(iff)<=lev_files(iff)) THEN
861      CALL histwrite_phy(nid_files(iff),o_iwcon%name,itau_w,fiwc)
862       ENDIF
863
864       IF (o_temp%flag(iff)<=lev_files(iff)) THEN
865      CALL histwrite_phy(nid_files(iff),o_temp%name,itau_w,t_seri)
866       ENDIF
867
868       IF (o_theta%flag(iff)<=lev_files(iff)) THEN
869      CALL histwrite_phy(nid_files(iff),o_theta%name,itau_w,theta)
870       ENDIF
871
872       IF (o_ovap%flag(iff)<=lev_files(iff)) THEN
873      CALL histwrite_phy(nid_files(iff),o_ovap%name,itau_w,qx(:,:,ivap))
874       ENDIF
875
876       IF (o_ovapinit%flag(iff)<=lev_files(iff)) THEN
877      CALL histwrite_phy(nid_files(iff),
878     $                   o_ovapinit%name,itau_w,q_seri)
879       ENDIF
880
881       IF (o_geop%flag(iff)<=lev_files(iff)) THEN
882      CALL histwrite_phy(nid_files(iff),o_geop%name,itau_w,zphi)
883       ENDIF
884
885       IF (o_vitu%flag(iff)<=lev_files(iff)) THEN
886      CALL histwrite_phy(nid_files(iff),o_vitu%name,itau_w,u_seri)
887       ENDIF
888
889       IF (o_vitv%flag(iff)<=lev_files(iff)) THEN
890      CALL histwrite_phy(nid_files(iff),o_vitv%name,itau_w,v_seri)
891       ENDIF
892
893       IF (o_vitw%flag(iff)<=lev_files(iff)) THEN
894      CALL histwrite_phy(nid_files(iff),o_vitw%name,itau_w,omega)
895       ENDIF
896
897        IF (o_pres%flag(iff)<=lev_files(iff)) THEN
898      CALL histwrite_phy(nid_files(iff),o_pres%name,itau_w,pplay)
899        ENDIF
900
901       IF (o_rneb%flag(iff)<=lev_files(iff)) THEN
902      CALL histwrite_phy(nid_files(iff),o_rneb%name,itau_w,cldfra)
903       ENDIF
904
905       IF (o_rnebcon%flag(iff)<=lev_files(iff)) THEN
906      CALL histwrite_phy(nid_files(iff),o_rnebcon%name,itau_w,rnebcon)
907       ENDIF
908
909       IF (o_rhum%flag(iff)<=lev_files(iff)) THEN
910      CALL histwrite_phy(nid_files(iff),o_rhum%name,itau_w,zx_rh)
911       ENDIF
912
913      IF (o_ozone%flag(iff)<=lev_files(iff)) THEN
914      DO k=1, klev
915       DO i=1, klon
916         zx_tmp_fi3d(i,k)=wo(i,k)*RG/46.6968
917     $                    /(paprs(i,k)-paprs(i,k+1))
918     $                    *(paprs(i,1)/101325.0)
919       ENDDO !i
920      ENDDO !k
921      CALL histwrite_phy(nid_files(iff),o_ozone%name,itau_w,zx_tmp_fi3d)
922      ENDIF
923
924       IF (o_dtphy%flag(iff)<=lev_files(iff)) THEN
925      CALL histwrite_phy(nid_files(iff),o_dtphy%name,itau_w,d_t)
926       ENDIF
927
928       IF (o_dqphy%flag(iff)<=lev_files(iff)) THEN
929      CALL histwrite_phy(nid_files(iff),
930     s                  o_dqphy%name,itau_w, d_qx(:,:,ivap))
931       ENDIF
932
933        DO nsrf=1, nbsrf
934        IF (o_albe_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
935        zx_tmp_fi2d(1 : klon) = falb1( 1 : klon, nsrf)
936        CALL histwrite_phy(nid_files(iff),
937     s                    o_albe_srf(nsrf)%name,itau_w,
938     $                     zx_tmp_fi2d)
939        ENDIF
940
941        IF (o_rugs_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 
942        zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf)
943        CALL histwrite_phy(nid_files(iff),
944     s                     o_rugs_srf(nsrf)%name,itau_w,
945     $      zx_tmp_fi2d)
946        ENDIF
947
948        IF (o_ages_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
949        zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf)
950        CALL histwrite_phy(nid_files(iff),
951     s                     o_ages_srf(nsrf)%name,itau_w
952     $    ,zx_tmp_fi2d)
953        ENDIF
954        ENDDO !nsrf=1, nbsrf
955
956       IF (o_albs%flag(iff)<=lev_files(iff)) THEN
957      CALL histwrite_phy(nid_files(iff),o_albs%name,itau_w,albsol1)
958       ENDIF
959
960       IF (o_albslw%flag(iff)<=lev_files(iff)) THEN
961      CALL histwrite_phy(nid_files(iff),o_albslw%name,itau_w,albsol2)
962       ENDIF
963
964!FH Sorties pour la couche limite
965      if (iflag_pbl>1) then
966      zx_tmp_fi3d=0.
967      do nsrf=1,nbsrf
968         do k=1,klev
969          zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k)
970     $    +pctsrf(:,nsrf)*pbl_tke(:,k,nsrf)
971         enddo
972      enddo
973       IF (o_tke%flag(iff)<=lev_files(iff)) THEN
974      CALL histwrite_phy(nid_files(iff),o_tke%name,itau_w,zx_tmp_fi3d)
975       ENDIF
976
977       IF (o_tke_max%flag(iff)<=lev_files(iff)) THEN
978      CALL histwrite_phy(nid_files(iff),
979     s                   o_tke_max%name,itau_w,zx_tmp_fi3d)
980       ENDIF
981      endif
982
983       IF (o_kz%flag(iff)<=lev_files(iff)) THEN
984      CALL histwrite_phy(nid_files(iff),o_kz%name,itau_w,coefh)
985       ENDIF
986
987       IF (o_kz_max%flag(iff)<=lev_files(iff)) THEN
988      CALL histwrite_phy(nid_files(iff),o_kz_max%name,itau_w,coefh)
989       ENDIF
990
991       IF (o_clwcon%flag(iff)<=lev_files(iff)) THEN
992      CALL histwrite_phy(nid_files(iff),o_clwcon%name,itau_w,clwcon0)
993       ENDIF
994
995       IF (o_dtdyn%flag(iff)<=lev_files(iff)) THEN
996      CALL histwrite_phy(nid_files(iff),o_dtdyn%name,itau_w,d_t_dyn)
997       ENDIF
998
999       IF (o_dqdyn%flag(iff)<=lev_files(iff)) THEN
1000      CALL histwrite_phy(nid_files(iff),o_dqdyn%name,itau_w,d_q_dyn)
1001       ENDIF
1002
1003       IF (o_dudyn%flag(iff)<=lev_files(iff)) THEN
1004      CALL histwrite_phy(nid_files(iff),o_dudyn%name,itau_w,d_u_dyn)
1005       ENDIF                                                   
1006
1007       IF (o_dvdyn%flag(iff)<=lev_files(iff)) THEN                 
1008      CALL histwrite_phy(nid_files(iff),o_dvdyn%name,itau_w,d_v_dyn) 
1009       ENDIF                                                     
1010
1011       IF (o_dtcon%flag(iff)<=lev_files(iff)) THEN
1012      zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys
1013      CALL histwrite_phy(nid_files(iff),o_dtcon%name,itau_w,zx_tmp_fi3d)
1014       ENDIF
1015
1016       IF (o_ducon%flag(iff)<=lev_files(iff)) THEN
1017      zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys
1018      CALL histwrite_phy(nid_files(iff),o_ducon%name,itau_w,zx_tmp_fi3d)
1019       ENDIF
1020
1021       IF (o_dqcon%flag(iff)<=lev_files(iff)) THEN
1022      zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
1023      CALL histwrite_phy(nid_files(iff),o_dqcon%name,itau_w,zx_tmp_fi3d)
1024       ENDIF
1025
1026       IF (o_dtlsc%flag(iff)<=lev_files(iff)) THEN
1027      zx_tmp_fi3d(1:klon,1:klev)=d_t_lsc(1:klon,1:klev)/pdtphys
1028      CALL histwrite_phy(nid_files(iff),o_dtlsc%name,itau_w,zx_tmp_fi3d)
1029       ENDIF
1030
1031       IF (o_dtlschr%flag(iff)<=lev_files(iff)) THEN
1032      zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+
1033     $                           d_t_eva(1:klon,1:klev))/pdtphys
1034      CALL histwrite_phy(nid_files(iff),
1035     s                   o_dtlschr%name,itau_w,zx_tmp_fi3d)
1036       ENDIF
1037
1038       IF (o_dqlsc%flag(iff)<=lev_files(iff)) THEN
1039      zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys
1040      CALL histwrite_phy(nid_files(iff),o_dqlsc%name,itau_w,zx_tmp_fi3d)
1041       ENDIF
1042
1043       IF (o_dtvdf%flag(iff)<=lev_files(iff)) THEN
1044      zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys
1045      CALL histwrite_phy(nid_files(iff),o_dtvdf%name,itau_w,zx_tmp_fi3d)
1046       ENDIF
1047
1048       IF (o_dqvdf%flag(iff)<=lev_files(iff)) THEN
1049      zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
1050      CALL histwrite_phy(nid_files(iff),o_dqvdf%name,itau_w,zx_tmp_fi3d)
1051       ENDIF
1052
1053       IF (o_dteva%flag(iff)<=lev_files(iff)) THEN
1054      zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys
1055      CALL histwrite_phy(nid_files(iff),o_dteva%name,itau_w,zx_tmp_fi3d)
1056       ENDIF
1057
1058       IF (o_dqeva%flag(iff)<=lev_files(iff)) THEN
1059      zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys
1060      CALL histwrite_phy(nid_files(iff),o_dqeva%name,itau_w,zx_tmp_fi3d)
1061       ENDIF
1062
1063       IF (o_ptconv%flag(iff)<=lev_files(iff)) THEN
1064      zpt_conv = 0.
1065      where (ptconv) zpt_conv = 1.
1066      CALL histwrite_phy(nid_files(iff),o_ptconv%name,itau_w,zpt_conv)
1067       ENDIF
1068
1069       IF (o_ratqs%flag(iff)<=lev_files(iff)) THEN
1070      CALL histwrite_phy(nid_files(iff),o_ratqs%name,itau_w,ratqs)
1071       ENDIF
1072
1073       IF (o_dtthe%flag(iff)<=lev_files(iff)) THEN
1074      zx_tmp_fi3d(1:klon,1:klev)=d_t_ajs(1:klon,1:klev)/pdtphys
1075      CALL histwrite_phy(nid_files(iff),o_dtthe%name,itau_w,zx_tmp_fi3d)
1076       ENDIF
1077
1078       IF (iflag_thermals.gt.1) THEN
1079        IF (o_f_th%flag(iff)<=lev_files(iff)) THEN
1080        CALL histwrite_phy(nid_files(iff),o_f_th%name,itau_w,fm_therm)
1081        ENDIF
1082
1083        IF (o_e_th%flag(iff)<=lev_files(iff)) THEN
1084        CALL histwrite_phy(nid_files(iff),o_e_th%name,itau_w,entr_therm)
1085        ENDIF
1086
1087        IF (o_w_th%flag(iff)<=lev_files(iff)) THEN
1088        CALL histwrite_phy(nid_files(iff),o_w_th%name,itau_w,zw2)
1089        ENDIF
1090
1091        IF (o_q_th%flag(iff)<=lev_files(iff)) THEN
1092        CALL histwrite_phy(nid_files(iff),o_q_th%name,itau_w,zqasc)
1093        ENDIF
1094
1095        IF (o_lambda_th%flag(iff)<=lev_files(iff)) THEN
1096        CALL histwrite_phy(nid_files(iff),
1097     s                     o_lambda_th%name,itau_w,lambda_th)
1098        ENDIF
1099
1100        IF (o_a_th%flag(iff)<=lev_files(iff)) THEN
1101        CALL histwrite_phy(nid_files(iff),o_a_th%name,itau_w,fraca)
1102        ENDIF
1103
1104       IF (o_d_th%flag(iff)<=lev_files(iff)) THEN
1105       CALL histwrite_phy(nid_files(iff),o_d_th%name,itau_w,detr_therm)
1106       ENDIF
1107
1108       ENDIF !iflag_thermals
1109
1110       IF (o_f0_th%flag(iff)<=lev_files(iff)) THEN
1111      CALL histwrite_phy(nid_files(iff),o_f0_th%name,itau_w,f0)
1112       ENDIF
1113
1114       IF (o_f0_th%flag(iff)<=lev_files(iff)) THEN
1115      CALL histwrite_phy(nid_files(iff),o_zmax_th%name,itau_w,zmax0)
1116       ENDIF
1117
1118       IF (o_dqthe%flag(iff)<=lev_files(iff)) THEN
1119      zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys
1120      CALL histwrite_phy(nid_files(iff),o_dqthe%name,itau_w,zx_tmp_fi3d)
1121       ENDIF
1122
1123       IF (o_dtajs%flag(iff)<=lev_files(iff)) THEN
1124      zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys
1125      CALL histwrite_phy(nid_files(iff),o_dtajs%name,itau_w,zx_tmp_fi3d)
1126       ENDIF
1127
1128       IF (o_dqajs%flag(iff)<=lev_files(iff)) THEN
1129      zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys
1130      CALL histwrite_phy(nid_files(iff),o_dqajs%name,itau_w,zx_tmp_fi3d)
1131       ENDIF
1132
1133       IF (o_dtswr%flag(iff)<=lev_files(iff)) THEN
1134      zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY
1135      CALL histwrite_phy(nid_files(iff),o_dtswr%name,itau_w,zx_tmp_fi3d)
1136       ENDIF
1137
1138       IF (o_dtsw0%flag(iff)<=lev_files(iff)) THEN
1139      zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)/RDAY
1140      CALL histwrite_phy(nid_files(iff),o_dtsw0%name,itau_w,zx_tmp_fi3d)
1141       ENDIF
1142
1143       IF (o_dtlwr%flag(iff)<=lev_files(iff)) THEN
1144      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY
1145      CALL histwrite_phy(nid_files(iff),o_dtlwr%name,itau_w,zx_tmp_fi3d)
1146       ENDIF
1147
1148       IF (o_dtlw0%flag(iff)<=lev_files(iff)) THEN
1149      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)/RDAY
1150      CALL histwrite_phy(nid_files(iff),o_dtlw0%name,itau_w,zx_tmp_fi3d)
1151       ENDIF
1152
1153       IF (o_dtec%flag(iff)<=lev_files(iff)) THEN
1154      zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)
1155      CALL histwrite_phy(nid_files(iff),o_dtec%name,itau_w,zx_tmp_fi3d)
1156       ENDIF
1157
1158       IF (o_duvdf%flag(iff)<=lev_files(iff)) THEN
1159      zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
1160      CALL histwrite_phy(nid_files(iff),o_duvdf%name,itau_w,zx_tmp_fi3d)
1161       ENDIF
1162
1163       IF (o_dvvdf%flag(iff)<=lev_files(iff)) THEN
1164      zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
1165      CALL histwrite_phy(nid_files(iff),o_dvvdf%name,itau_w,zx_tmp_fi3d)
1166       ENDIF
1167
1168       IF (ok_orodr) THEN
1169      IF (o_duoro%flag(iff)<=lev_files(iff)) THEN
1170      zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
1171      CALL histwrite_phy(nid_files(iff),o_duoro%name,itau_w,zx_tmp_fi3d)
1172       ENDIF
1173
1174      IF (o_dvoro%flag(iff)<=lev_files(iff)) THEN
1175      zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
1176      CALL histwrite_phy(nid_files(iff),o_dvoro%name,itau_w,zx_tmp_fi3d)
1177      ENDIF
1178       ENDIF
1179
1180        IF (ok_orolf) THEN
1181       IF (o_dulif%flag(iff)<=lev_files(iff)) THEN
1182      zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
1183      CALL histwrite_phy(nid_files(iff),o_dulif%name,itau_w,zx_tmp_fi3d)
1184       ENDIF
1185
1186        IF (o_dvlif%flag(iff)<=lev_files(iff)) THEN
1187      zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
1188      CALL histwrite_phy(nid_files(iff),o_dvlif%name,itau_w,zx_tmp_fi3d)
1189       ENDIF
1190        ENDIF
1191
1192!       IF (o_trac%flag(iff)<=lev_files(iff)) THEN
1193         if (nqtot.GE.3) THEN
1194!           DO iq=3,nqtot
1195           DO iq=3,4
1196       IF (o_trac(iq-2)%flag(iff)<=lev_files(iff)) THEN
1197         CALL histwrite_phy(nid_files(iff),
1198     s                  o_trac(iq-2)%name,itau_w,qx(:,:,iq))
1199       ENDIF
1200           ENDDO
1201         endif
1202
1203      if (ok_sync) then
1204c$OMP MASTER
1205        call histsync(nid_files(iff))
1206c$OMP END MASTER
1207      endif
1208
1209       ENDIF ! clef_files
1210
1211      ENDDO ! iff=1,nfiles
Note: See TracBrowser for help on using the repository browser.