source: LMDZ5/trunk/libf/phylmd/phys_output_write.h @ 1753

Last change on this file since 1753 was 1753, checked in by idelkadi, 11 years ago

Concerns energy conservation.


The source terms of the TKE prognostic equation are diagnosed
from the tendencies (du, dv, dT) associated with subrgrid scale
motions and treated as an additional heat source.
Controled by a new key, iflag_ener_conserv :

0 no conservation

-1 old adhoc correction for kinetic E only (used for CMIP5)

1 conservation
101 conversion from kinetic to heat only
110 conversion from potential to heat only

iflag_ener_conserv=-1 kept as default value for a test period
iflag_ener_conserv=1 is the advisable value
Concerns clesphys.h, and conf_phys.F90
New routine : ener_conserv.F90, called by physic.
New outputs :
bils_ec, contribution to the energy budget of the column of the

additional heat source (in W/m2)

bils_kinetic : change kinetic energy of the column in physics (W/m2)
bils_enthalp : idem for the total column enthalphy
bils_latent : idem for latent heat
Modified files : clesphys.h, conf_phys_m.F90, physiq.F,

phys_output_mod.F90, phys_output_var_mod.F90, phys_output_write.h,
ener_conserv.F90

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 78.8 KB
Line 
1      itau_w = itau_phy + itap + start_time * day_step / iphysiq
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),clef_stations(iff),
12     $                  o_phis%name,itau_w,pphis)
13       ENDIF
14
15       IF (.NOT.clef_stations(iff)) THEN
16       IF (o_aire%flag(iff)<=lev_files(iff)) THEN
17       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
18     $o_aire%name,itau_w,airephy)
19       ENDIF
20
21       IF (o_contfracATM%flag(iff)<=lev_files(iff)) THEN
22      DO i=1, klon
23       zx_tmp_fi2d(i)=pctsrf(i,is_ter)+pctsrf(i,is_lic)
24      ENDDO
25      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
26     $             o_contfracATM%name,itau_w,zx_tmp_fi2d)
27       ENDIF
28       ENDIF
29
30       IF (o_contfracOR%flag(iff)<=lev_files(iff)) THEN
31      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
32     $                  o_contfracOR%name,itau_w,pctsrf(:,is_ter))
33       ENDIF
34
35       IF (o_aireTER%flag(iff)<=lev_files(iff)) THEN
36      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
37     $                  o_aireTER%name,itau_w,paire_ter)
38       ENDIF
39
40!!! Champs 2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
41
42       IF (o_flat%flag(iff)<=lev_files(iff)) THEN
43      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
44     $                  o_flat%name,itau_w,zxfluxlat)
45       ENDIF
46
47       IF (o_slp%flag(iff)<=lev_files(iff)) THEN
48      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
49     $                  o_slp%name,itau_w,slp)
50       ENDIF
51
52       IF (o_tsol%flag(iff)<=lev_files(iff)) THEN
53      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
54     $                  o_tsol%name,itau_w,zxtsol)
55       ENDIF
56
57       IF (o_t2m%flag(iff)<=lev_files(iff)) THEN
58      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
59     $                  o_t2m%name,itau_w,zt2m)
60       ENDIF
61
62      IF (.NOT.clef_stations(iff)) THEN
63       IF (o_t2m_min%flag(iff)<=lev_files(iff)) THEN
64      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
65     $o_t2m_min%name,itau_w,zt2m)
66       ENDIF
67
68       IF (o_t2m_max%flag(iff)<=lev_files(iff)) THEN
69      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
70     $o_t2m_max%name,itau_w,zt2m)
71       ENDIF
72       ENDIF
73
74       IF (o_wind10m%flag(iff)<=lev_files(iff)) THEN
75      DO i=1, klon
76       zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
77      ENDDO
78      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
79     s                  o_wind10m%name,itau_w,zx_tmp_fi2d)
80       ENDIF
81
82      IF (.NOT.clef_stations(iff)) THEN
83       IF (o_wind10max%flag(iff)<=lev_files(iff)) THEN
84      DO i=1, klon
85       zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
86      ENDDO
87      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
88     $o_wind10max%name,itau_w,zx_tmp_fi2d)
89       ENDIF
90      ENDIF
91
92       IF (o_sicf%flag(iff)<=lev_files(iff)) THEN
93      DO i = 1, klon
94         zx_tmp_fi2d(i) = pctsrf(i,is_sic)
95      ENDDO
96      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
97     $                   o_sicf%name,itau_w,zx_tmp_fi2d)
98       ENDIF
99
100       IF (o_q2m%flag(iff)<=lev_files(iff)) THEN
101      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
102     $o_q2m%name,itau_w,zq2m)
103       ENDIF
104
105       IF (o_ustar%flag(iff)<=lev_files(iff)) THEN
106      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
107     $o_ustar%name,itau_w,zustar)
108       ENDIF
109
110       IF (o_u10m%flag(iff)<=lev_files(iff)) THEN
111      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
112     $o_u10m%name,itau_w,zu10m)
113       ENDIF
114
115       IF (o_v10m%flag(iff)<=lev_files(iff)) THEN
116      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
117     $o_v10m%name,itau_w,zv10m)
118       ENDIF
119
120       IF (o_psol%flag(iff)<=lev_files(iff)) THEN
121      DO i = 1, klon
122         zx_tmp_fi2d(i) = paprs(i,1)
123      ENDDO
124      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
125     s                   o_psol%name,itau_w,zx_tmp_fi2d)
126       ENDIF
127
128       IF (o_mass%flag(iff)<=lev_files(iff)) THEN
129      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
130     s                   o_mass%name,itau_w,zmasse)
131        ENDIF
132
133
134       IF (o_qsurf%flag(iff)<=lev_files(iff)) THEN
135      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
136     $o_qsurf%name,itau_w,zxqsurf)
137       ENDIF
138
139       if (.not. ok_veget) then
140         IF (o_qsol%flag(iff)<=lev_files(iff)) THEN
141        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
142     $o_qsol%name,itau_w,qsol)
143         ENDIF
144       endif
145
146      IF (o_precip%flag(iff)<=lev_files(iff)) THEN
147       DO i = 1, klon
148         zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
149       ENDDO
150      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
151     $o_precip%name,itau_w,zx_tmp_fi2d)
152      ENDIF
153
154       IF (o_ndayrain%flag(iff)<=lev_files(iff)) THEN
155      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
156     $o_ndayrain%name,itau_w,nday_rain)
157       ENDIF
158
159      IF (o_plul%flag(iff)<=lev_files(iff)) THEN
160       DO i = 1, klon
161         zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i)
162       ENDDO
163      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
164     $o_plul%name,itau_w,zx_tmp_fi2d)
165      ENDIF
166
167      IF (o_pluc%flag(iff)<=lev_files(iff)) THEN
168      DO i = 1, klon
169         zx_tmp_fi2d(i) = rain_con(i) + snow_con(i)
170      ENDDO
171      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
172     $o_pluc%name,itau_w,zx_tmp_fi2d)
173      ENDIF
174
175       IF (o_snow%flag(iff)<=lev_files(iff)) THEN
176      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
177     $o_snow%name,itau_w,snow_fall)
178       ENDIF
179
180       IF (o_msnow%flag(iff)<=lev_files(iff)) THEN
181      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
182     $o_msnow%name,itau_w,snow_o)
183       ENDIF
184
185       IF (o_fsnow%flag(iff)<=lev_files(iff)) THEN
186      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
187     $o_fsnow%name,itau_w,zfra_o)
188       ENDIF
189
190       IF (o_evap%flag(iff)<=lev_files(iff)) THEN
191      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
192     $o_evap%name,itau_w,evap)
193       ENDIF
194
195       IF (o_tops%flag(iff)<=lev_files(iff)) THEN
196      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
197     $o_tops%name,itau_w,topsw)
198       ENDIF
199
200       IF (o_tops0%flag(iff)<=lev_files(iff)) THEN
201      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
202     $o_tops0%name,itau_w,topsw0)
203       ENDIF
204
205       IF (o_topl%flag(iff)<=lev_files(iff)) THEN
206      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
207     $o_topl%name,itau_w,toplw)
208       ENDIF
209
210       IF (o_topl0%flag(iff)<=lev_files(iff)) THEN
211      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
212     $o_topl0%name,itau_w,toplw0)
213       ENDIF
214
215       IF (o_SWupTOA%flag(iff)<=lev_files(iff)) THEN
216      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 )
217      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
218     $o_SWupTOA%name,itau_w,zx_tmp_fi2d)
219       ENDIF
220
221       IF (o_SWupTOAclr%flag(iff)<=lev_files(iff)) THEN
222      zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, klevp1 )
223      CALL histwrite_phy(nid_files(iff),clef_stations(iff), 
224     $                  o_SWupTOAclr%name,itau_w,zx_tmp_fi2d)
225       ENDIF
226
227       IF (o_SWdnTOA%flag(iff)<=lev_files(iff)) THEN
228      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 )
229      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
230     s                  o_SWdnTOA%name,itau_w,zx_tmp_fi2d)
231       ENDIF
232
233       IF (o_SWdnTOAclr%flag(iff)<=lev_files(iff)) THEN
234      zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, klevp1 )
235      CALL histwrite_phy(nid_files(iff),clef_stations(iff), 
236     $                  o_SWdnTOAclr%name,itau_w,zx_tmp_fi2d)
237       ENDIF
238
239       IF (o_nettop%flag(iff)<=lev_files(iff)) THEN
240      zx_tmp_fi2d(:) = topsw(:)-toplw(:)
241      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
242     $                  o_nettop%name,itau_w,zx_tmp_fi2d)
243       ENDIF
244
245       IF (o_SWup200%flag(iff)<=lev_files(iff)) THEN
246      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
247     $o_SWup200%name,itau_w,SWup200)
248       ENDIF
249
250       IF (o_SWup200clr%flag(iff)<=lev_files(iff)) THEN
251      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
252     s                   o_SWup200clr%name,itau_w,SWup200clr)
253       ENDIF
254
255       IF (o_SWdn200%flag(iff)<=lev_files(iff)) THEN
256      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
257     $o_SWdn200%name,itau_w,SWdn200)
258       ENDIF
259
260       IF (o_SWdn200clr%flag(iff)<=lev_files(iff)) THEN
261      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
262     s                o_SWdn200clr%name,itau_w,SWdn200clr)
263       ENDIF
264
265       IF (o_LWup200%flag(iff)<=lev_files(iff)) THEN
266      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
267     $o_LWup200%name,itau_w,LWup200)
268       ENDIF
269
270       IF (o_LWup200clr%flag(iff)<=lev_files(iff)) THEN
271      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
272     s                   o_LWup200clr%name,itau_w,LWup200clr)
273       ENDIF
274
275       IF (o_LWdn200%flag(iff)<=lev_files(iff)) THEN
276      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
277     s                   o_LWdn200%name,itau_w,LWdn200)
278       ENDIF
279
280       IF (o_LWdn200clr%flag(iff)<=lev_files(iff)) THEN
281      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
282     s                  o_LWdn200clr%name,itau_w,LWdn200clr)
283       ENDIF
284
285       IF (o_sols%flag(iff)<=lev_files(iff)) THEN
286      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
287     $o_sols%name,itau_w,solsw)
288       ENDIF
289
290       IF (o_sols0%flag(iff)<=lev_files(iff)) THEN
291      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
292     $o_sols0%name,itau_w,solsw0)
293       ENDIF
294
295       IF (o_soll%flag(iff)<=lev_files(iff)) THEN
296      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
297     $o_soll%name,itau_w,sollw)
298       ENDIF
299
300       IF (o_radsol%flag(iff)<=lev_files(iff)) THEN
301      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
302     $o_radsol%name,itau_w,radsol)
303       ENDIF
304
305       IF (o_soll0%flag(iff)<=lev_files(iff)) THEN
306      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
307     $o_soll0%name,itau_w,sollw0)
308       ENDIF
309
310       IF (o_SWupSFC%flag(iff)<=lev_files(iff)) THEN
311      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 )
312      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
313     s               o_SWupSFC%name,itau_w,zx_tmp_fi2d)
314       ENDIF
315
316       IF (o_SWupSFCclr%flag(iff)<=lev_files(iff)) THEN
317      zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 1 )
318      CALL histwrite_phy(nid_files(iff),clef_stations(iff), 
319     $                   o_SWupSFCclr%name,itau_w,zx_tmp_fi2d)
320       ENDIF
321
322       IF (o_SWdnSFC%flag(iff)<=lev_files(iff)) THEN
323      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 )
324      CALL histwrite_phy(nid_files(iff),clef_stations(iff), 
325     $                   o_SWdnSFC%name,itau_w,zx_tmp_fi2d)
326       ENDIF
327
328       IF (o_SWdnSFCclr%flag(iff)<=lev_files(iff)) THEN
329      zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 1 )
330      CALL histwrite_phy(nid_files(iff),clef_stations(iff), 
331     $                  o_SWdnSFCclr%name,itau_w,zx_tmp_fi2d)
332       ENDIF
333
334       IF (o_LWupSFC%flag(iff)<=lev_files(iff)) THEN
335      zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon)
336      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
337     $                    o_LWupSFC%name,itau_w,zx_tmp_fi2d)
338       ENDIF
339
340       IF (o_LWdnSFC%flag(iff)<=lev_files(iff)) THEN
341      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
342     $                   o_LWdnSFC%name,itau_w,sollwdown)
343       ENDIF
344
345       sollwdownclr(1:klon) = -1.*lwdn0(1:klon,1)
346       IF (o_LWupSFCclr%flag(iff)<=lev_files(iff)) THEN
347      zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon)
348      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
349     $                   o_LWupSFCclr%name,itau_w,zx_tmp_fi2d)
350       ENDIF
351
352       IF (o_LWdnSFCclr%flag(iff)<=lev_files(iff)) THEN
353      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
354     $                   o_LWdnSFCclr%name,itau_w,sollwdownclr)
355       ENDIF
356
357       IF (o_bils%flag(iff)<=lev_files(iff)) THEN
358      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
359     $o_bils%name,itau_w,bils)
360       ENDIF
361
362       IF (o_bils_ec%flag(iff)<=lev_files(iff)) THEN
363      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
364     $o_bils_ec%name,itau_w,bils_ec)
365       ENDIF
366
367       IF (o_bils_kinetic%flag(iff)<=lev_files(iff)) THEN
368      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
369     $o_bils_kinetic%name,itau_w,bils_kinetic)
370       ENDIF
371
372       IF (o_bils_latent%flag(iff)<=lev_files(iff)) THEN
373      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
374     $o_bils_latent%name,itau_w,bils_latent)
375       ENDIF
376
377       IF (o_bils_enthalp%flag(iff)<=lev_files(iff)) THEN
378      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
379     $o_bils_enthalp%name,itau_w,bils_enthalp)
380       ENDIF
381
382       IF (o_sens%flag(iff)<=lev_files(iff)) THEN
383      zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
384      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
385     $o_sens%name,itau_w,zx_tmp_fi2d)
386       ENDIF
387
388       IF (o_fder%flag(iff)<=lev_files(iff)) THEN
389      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
390     $o_fder%name,itau_w,fder)
391       ENDIF
392
393       IF (o_ffonte%flag(iff)<=lev_files(iff)) THEN
394       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
395     $o_ffonte%name,itau_w,zxffonte)
396       ENDIF
397
398       IF (o_fqcalving%flag(iff)<=lev_files(iff)) THEN
399       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
400     $                    o_fqcalving%name,itau_w,zxfqcalving)
401       ENDIF
402
403       IF (o_fqfonte%flag(iff)<=lev_files(iff)) THEN
404       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
405     $                   o_fqfonte%name,itau_w,zxfqfonte)
406       ENDIF
407
408       IF (o_taux%flag(iff)<=lev_files(iff)) THEN
409         zx_tmp_fi2d=0.
410         do nsrf=1,nbsrf
411          zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxu(:,1,nsrf)
412         enddo
413         CALL histwrite_phy(nid_files(iff),clef_stations(iff),
414     $                   o_taux%name,itau_w,zx_tmp_fi2d)
415       ENDIF
416
417       IF (o_tauy%flag(iff)<=lev_files(iff)) THEN
418         zx_tmp_fi2d=0.
419         do nsrf=1,nbsrf
420          zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxv(:,1,nsrf)
421         enddo
422         CALL histwrite_phy(nid_files(iff),clef_stations(iff),
423     $                   o_tauy%name,itau_w,zx_tmp_fi2d)
424       ENDIF
425
426         DO nsrf = 1, nbsrf
427!           IF(nsrf.GE.2) THEN
428            IF (o_pourc_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
429            zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
430            CALL histwrite_phy(nid_files(iff),
431     $                     clef_stations(iff),
432     $                     o_pourc_srf(nsrf)%name,itau_w,
433     $                     zx_tmp_fi2d)
434            ENDIF
435
436          IF (o_fract_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
437          zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
438          CALL histwrite_phy(nid_files(iff),clef_stations(iff),
439     $                  o_fract_srf(nsrf)%name,itau_w,
440     $                  zx_tmp_fi2d)
441          ENDIF
442!         ENDIF !nsrf.GT.2
443
444        IF (o_taux_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
445        zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
446        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
447     $                     o_taux_srf(nsrf)%name,itau_w,
448     $                     zx_tmp_fi2d)
449        ENDIF
450
451        IF (o_tauy_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN           
452        zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
453        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
454     $                    o_tauy_srf(nsrf)%name,itau_w,
455     $                    zx_tmp_fi2d)
456        ENDIF
457
458        IF (o_tsol_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
459        zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
460        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
461     $                   o_tsol_srf(nsrf)%name,itau_w,
462     $      zx_tmp_fi2d)
463        ENDIF
464
465        IF (o_evappot_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
466        zx_tmp_fi2d(1 : klon) = evap_pot( 1 : klon, nsrf)
467        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
468     $                   o_evappot_srf(nsrf)%name,itau_w,
469     $      zx_tmp_fi2d)
470        ENDIF
471
472      IF (o_ustar_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
473      zx_tmp_fi2d(1 : klon) = ustar(1 : klon, nsrf)
474      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
475     $o_ustar_srf(nsrf)%name,
476     $                 itau_w,zx_tmp_fi2d)
477      ENDIF
478
479      IF (o_u10m_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
480      zx_tmp_fi2d(1 : klon) = u10m(1 : klon, nsrf)
481      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
482     $o_u10m_srf(nsrf)%name,
483     $                 itau_w,zx_tmp_fi2d)
484      ENDIF
485
486      IF (o_v10m_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
487      zx_tmp_fi2d(1 : klon) = v10m(1 : klon, nsrf)
488      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
489     $o_v10m_srf(nsrf)%name,
490     $              itau_w,zx_tmp_fi2d)
491      ENDIF
492 
493      IF (o_t2m_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
494      zx_tmp_fi2d(1 : klon) = t2m(1 : klon, nsrf)
495      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
496     $o_t2m_srf(nsrf)%name,
497     $           itau_w,zx_tmp_fi2d)
498      ENDIF
499
500      IF (o_evap_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
501      zx_tmp_fi2d(1 : klon) = fevap(1 : klon, nsrf)
502      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
503     $o_evap_srf(nsrf)%name,
504     $           itau_w,zx_tmp_fi2d)
505      ENDIF
506
507       IF (o_sens_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
508       zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
509       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
510     $                    o_sens_srf(nsrf)%name,itau_w,
511     $      zx_tmp_fi2d)
512       ENDIF
513
514        IF (o_lat_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
515        zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
516        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
517     $                 o_lat_srf(nsrf)%name,itau_w,
518     $                                   zx_tmp_fi2d)
519          ENDIF
520
521        IF (o_flw_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
522        zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf)
523        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
524     $                     o_flw_srf(nsrf)%name,itau_w,
525     $      zx_tmp_fi2d)
526        ENDIF
527
528        IF (o_fsw_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
529        zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf)
530        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
531     $                   o_fsw_srf(nsrf)%name,itau_w,
532     $      zx_tmp_fi2d)
533        ENDIF
534
535        IF (o_wbils_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
536        zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf)
537        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
538     $                   o_wbils_srf(nsrf)%name,itau_w,
539     $      zx_tmp_fi2d)
540        ENDIF
541
542        IF (o_wbilo_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
543        zx_tmp_fi2d(1 : klon) = wfbilo( 1 : klon, nsrf)
544        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
545     $                    o_wbilo_srf(nsrf)%name,itau_w,
546     $      zx_tmp_fi2d)
547        ENDIF
548
549       if (iflag_pbl>1 .and. lev_files(iff).gt.10 ) then
550        IF (o_tke_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
551        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
552     $                   o_tke_srf(nsrf)%name,itau_w,
553     $                    pbl_tke(:,1:klev,nsrf))
554       ENDIF
555
556      IF (.NOT.clef_stations(iff)) THEN
557        IF (o_tke_max_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
558        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
559     $                    o_tke_max_srf(nsrf)%name,itau_w,
560     $      pbl_tke(:,1:klev,nsrf))
561        ENDIF
562      ENDIF
563       endif
564      ENDDO
565
566        IF (o_cdrm%flag(iff)<=lev_files(iff)) THEN
567      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
568     $o_cdrm%name,itau_w,cdragm)
569        ENDIF
570
571        IF (o_cdrh%flag(iff)<=lev_files(iff)) THEN
572      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
573     $o_cdrh%name,itau_w,cdragh)
574        ENDIF
575
576        IF (o_cldl%flag(iff)<=lev_files(iff)) THEN
577      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
578     $o_cldl%name,itau_w,cldl)
579        ENDIF
580
581        IF (o_cldm%flag(iff)<=lev_files(iff)) THEN
582      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
583     $o_cldm%name,itau_w,cldm)
584        ENDIF
585
586        IF (o_cldh%flag(iff)<=lev_files(iff)) THEN
587      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
588     $o_cldh%name,itau_w,cldh)
589        ENDIF
590
591        IF (o_cldt%flag(iff)<=lev_files(iff)) THEN
592      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
593     $o_cldt%name, 
594     &                   itau_w,cldt)
595        ENDIF
596
597        IF (o_cldq%flag(iff)<=lev_files(iff)) THEN
598      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
599     $o_cldq%name,itau_w,cldq)
600        ENDIF
601
602        IF (o_lwp%flag(iff)<=lev_files(iff)) THEN
603      zx_tmp_fi2d(1:klon) = flwp(1:klon)
604      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
605     s                   o_lwp%name,itau_w,zx_tmp_fi2d)
606        ENDIF
607
608        IF (o_iwp%flag(iff)<=lev_files(iff)) THEN
609      zx_tmp_fi2d(1:klon) = fiwp(1:klon)
610      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
611     s                    o_iwp%name,itau_w,zx_tmp_fi2d)
612        ENDIF
613
614        IF (o_ue%flag(iff)<=lev_files(iff)) THEN
615      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
616     $o_ue%name,itau_w,ue)
617        ENDIF
618
619        IF (o_ve%flag(iff)<=lev_files(iff)) THEN
620      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
621     $o_ve%name,itau_w,ve)
622        ENDIF
623
624        IF (o_uq%flag(iff)<=lev_files(iff)) THEN
625      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
626     $o_uq%name,itau_w,uq)
627        ENDIF
628
629        IF (o_vq%flag(iff)<=lev_files(iff)) THEN
630      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
631     $o_vq%name,itau_w,vq)
632        ENDIF
633
634      IF(iflag_con.GE.3) THEN ! sb
635        IF (o_cape%flag(iff)<=lev_files(iff)) THEN
636      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
637     $o_cape%name,itau_w,cape)
638        ENDIF
639
640        IF (o_pbase%flag(iff)<=lev_files(iff)) THEN
641      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
642     $o_pbase%name,itau_w,ema_pcb)
643        ENDIF
644
645        IF (o_ptop%flag(iff)<=lev_files(iff)) THEN
646      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
647     $o_ptop%name,itau_w,ema_pct)
648        ENDIF
649
650        IF (o_fbase%flag(iff)<=lev_files(iff)) THEN
651      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
652     $o_fbase%name,itau_w,ema_cbmf)
653        ENDIF
654
655        if (iflag_con /= 30) then
656           if (o_plcl%flag(iff)<=lev_files(iff)) THEN
657              CALL histwrite_phy(nid_files(iff),clef_stations(iff),
658     $             o_plcl%name,itau_w,plcl)
659           ENDIF
660
661           IF (o_plfc%flag(iff)<=lev_files(iff)) THEN
662              CALL histwrite_phy(nid_files(iff),clef_stations(iff),
663     $             o_plfc%name,itau_w,plfc)
664           ENDIF
665
666           IF (o_wbeff%flag(iff)<=lev_files(iff)) THEN
667              CALL histwrite_phy(nid_files(iff),clef_stations(iff),
668     $             o_wbeff%name,itau_w,wbeff)
669           ENDIF
670        end if
671
672      IF (.NOT.clef_stations(iff)) THEN
673      IF (o_cape_max%flag(iff)<=lev_files(iff)) THEN
674      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
675     $o_cape_max%name,itau_w,cape)
676      ENDIF
677      ENDIF
678
679       IF (o_upwd%flag(iff)<=lev_files(iff)) THEN
680      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
681     $o_upwd%name,itau_w,upwd)
682       ENDIF
683
684       IF (o_Ma%flag(iff)<=lev_files(iff)) THEN
685      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
686     $o_Ma%name,itau_w,Ma)
687       ENDIF
688
689       IF (o_dnwd%flag(iff)<=lev_files(iff)) THEN
690      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
691     $o_dnwd%name,itau_w,dnwd)
692       ENDIF
693
694       IF (o_dnwd0%flag(iff)<=lev_files(iff)) THEN
695      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
696     $o_dnwd0%name,itau_w,dnwd0)
697       ENDIF
698
699       IF (o_ftime_con%flag(iff)<=lev_files(iff)) THEN
700        zx_tmp_fi2d=float(itau_con)/float(itap)
701      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
702     $o_ftime_con%name,
703     s                   itau_w,zx_tmp_fi2d)
704       ENDIF
705
706       IF (o_mc%flag(iff)<=lev_files(iff)) THEN
707        if(iflag_thermals>=1)then
708         zx_tmp_fi3d=dnwd+dnwd0+upwd+fm_therm(:,1:klev)
709        else
710         zx_tmp_fi3d=dnwd+dnwd0+upwd
711        endif
712      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
713     $o_mc%name,itau_w,zx_tmp_fi3d)
714       ENDIF
715     
716      ENDIF !iflag_con .GE. 3
717
718        IF (o_prw%flag(iff)<=lev_files(iff)) THEN
719      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
720     $o_prw%name,itau_w,prw)
721        ENDIF
722
723        IF (o_s_pblh%flag(iff)<=lev_files(iff)) THEN
724      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
725     $o_s_pblh%name,itau_w,s_pblh)
726        ENDIF
727
728        IF (o_s_pblt%flag(iff)<=lev_files(iff)) THEN
729      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
730     $o_s_pblt%name,itau_w,s_pblt)
731        ENDIF
732
733        IF (o_s_lcl%flag(iff)<=lev_files(iff)) THEN
734      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
735     $o_s_lcl%name,itau_w,s_lcl)
736        ENDIF
737
738        IF (o_s_therm%flag(iff)<=lev_files(iff)) THEN
739      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
740     $o_s_therm%name,itau_w,s_therm)
741        ENDIF
742
743!IM : Les champs suivants (s_capCL, s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F
744!       IF (o_s_capCL%flag(iff)<=lev_files(iff)) THEN
745!     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
746!    $o_s_capCL%name,itau_w,s_capCL)
747!       ENDIF
748
749!       IF (o_s_oliqCL%flag(iff)<=lev_files(iff)) THEN
750!     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
751!    $o_s_oliqCL%name,itau_w,s_oliqCL)
752!       ENDIF
753
754!       IF (o_s_cteiCL%flag(iff)<=lev_files(iff)) THEN
755!     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
756!    $o_s_cteiCL%name,itau_w,s_cteiCL)
757!       ENDIF
758
759!       IF (o_s_trmb1%flag(iff)<=lev_files(iff)) THEN
760!     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
761!    $o_s_trmb1%name,itau_w,s_trmb1)
762!       ENDIF
763
764!       IF (o_s_trmb2%flag(iff)<=lev_files(iff)) THEN
765!     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
766!    $o_s_trmb2%name,itau_w,s_trmb2)
767!       ENDIF
768
769!       IF (o_s_trmb3%flag(iff)<=lev_files(iff)) THEN
770!     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
771!    $o_s_trmb3%name,itau_w,s_trmb3)
772!       ENDIF
773
774! Champs interpolles sur des niveaux de pression
775
776        ll=0
777        DO k=1, nlevSTD
778         bb2=clevSTD(k) 
779         IF(bb2.EQ."850".OR.bb2.EQ."700".OR.
780     $      bb2.EQ."500".OR.bb2.EQ."200".OR.
781     $      bb2.EQ."100".OR.
782     $      bb2.EQ."50".OR.bb2.EQ."10") THEN
783
784! a refaire correctement !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
785          ll=ll+1
786       IF (o_uSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
787       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
788     $o_uSTDlevs(ll)%name,
789     &                    itau_w,uwriteSTD(:,k,iff))
790       ENDIF
791
792       IF (o_vSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
793      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
794     $o_vSTDlevs(ll)%name, 
795     &                   itau_w,vwriteSTD(:,k,iff))
796       ENDIF
797
798       IF (o_wSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
799      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
800     $o_wSTDlevs(ll)%name,
801     &                    itau_w,wwriteSTD(:,k,iff))
802       ENDIF
803
804       IF (o_zSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
805      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
806     $o_zSTDlevs(ll)%name,
807     &               itau_w,phiwriteSTD(:,k,iff))
808       ENDIF
809
810       IF (o_qSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
811      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
812     $o_qSTDlevs(ll)%name,
813     &                   itau_w, qwriteSTD(:,k,iff))
814       ENDIF
815
816       IF (o_tSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
817      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
818     $o_tSTDlevs(ll)%name,
819     &                   itau_w, twriteSTD(:,k,iff))
820       ENDIF
821
822       ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
823       ENDDO
824
825      IF (o_t_oce_sic%flag(iff)<=lev_files(iff)) THEN
826      DO i=1, klon
827       IF (pctsrf(i,is_oce).GT.epsfra.OR.
828     $     pctsrf(i,is_sic).GT.epsfra) THEN
829        zx_tmp_fi2d(i) = (ftsol(i, is_oce) * pctsrf(i,is_oce)+
830     $                   ftsol(i, is_sic) * pctsrf(i,is_sic))/
831     $                   (pctsrf(i,is_oce)+pctsrf(i,is_sic))
832       ELSE
833        zx_tmp_fi2d(i) = 273.15
834       ENDIF
835      ENDDO
836      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
837     s                   o_t_oce_sic%name,itau_w,zx_tmp_fi2d)
838      ENDIF
839
840! Couplage convection-couche limite
841      IF (iflag_con.GE.3) THEN
842      IF (iflag_coupl>=1) THEN
843       IF (o_ale_bl%flag(iff)<=lev_files(iff)) THEN
844       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
845     $o_ale_bl%name,itau_w,ale_bl)
846       ENDIF
847       IF (o_alp_bl%flag(iff)<=lev_files(iff)) THEN
848       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
849     $o_alp_bl%name,itau_w,alp_bl)
850       ENDIF
851      ENDIF !iflag_coupl>=1
852      ENDIF !(iflag_con.GE.3)
853
854! Wakes
855      IF (iflag_con.EQ.3) THEN
856      IF (iflag_wake>=1) THEN
857       IF (o_ale_wk%flag(iff)<=lev_files(iff)) THEN
858       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
859     $o_ale_wk%name,itau_w,ale_wake)
860       ENDIF
861       IF (o_alp_wk%flag(iff)<=lev_files(iff)) THEN
862       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
863     $o_alp_wk%name,itau_w,alp_wake)
864       ENDIF
865
866       IF (o_ale%flag(iff)<=lev_files(iff)) THEN
867       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
868     $o_ale%name,itau_w,ale)
869       ENDIF
870       IF (o_alp%flag(iff)<=lev_files(iff)) THEN
871       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
872     $o_alp%name,itau_w,alp)
873       ENDIF
874       IF (o_cin%flag(iff)<=lev_files(iff)) THEN
875       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
876     $o_cin%name,itau_w,cin)
877       ENDIF
878       IF (o_wape%flag(iff)<=lev_files(iff)) THEN
879       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
880     $o_WAPE%name,itau_w,wake_pe)
881       ENDIF
882       IF (o_wake_h%flag(iff)<=lev_files(iff)) THEN
883      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
884     $o_wake_h%name,itau_w,wake_h)
885       ENDIF
886
887       IF (o_wake_s%flag(iff)<=lev_files(iff)) THEN
888      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
889     $o_wake_s%name,itau_w,wake_s)
890       ENDIF
891
892        IF (o_wake_deltat%flag(iff)<=lev_files(iff)) THEN
893       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
894     $o_wake_deltat%name,
895     $                     itau_w,wake_deltat)
896        ENDIF
897
898        IF (o_wake_deltaq%flag(iff)<=lev_files(iff)) THEN
899       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
900     $o_wake_deltaq%name,
901     $                    itau_w,wake_deltaq)
902        ENDIF
903
904        IF (o_wake_omg%flag(iff)<=lev_files(iff)) THEN
905       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
906     s                    o_wake_omg%name,itau_w,wake_omg)
907        ENDIF
908
909         IF (o_dtwak%flag(iff)<=lev_files(iff)) THEN
910           zx_tmp_fi3d(1:klon,1:klev)=d_t_wake(1:klon,1:klev)
911     &                                        /pdtphys
912           CALL histwrite_phy(nid_files(iff),
913     $clef_stations(iff),
914     &                       o_dtwak%name,itau_w,zx_tmp_fi3d)
915         ENDIF
916
917        IF (o_dqwak%flag(iff)<=lev_files(iff)) THEN
918        zx_tmp_fi3d(1:klon,1:klev)=d_q_wake(1:klon,1:klev)/pdtphys
919        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
920     &                     o_dqwak%name,itau_w,zx_tmp_fi3d)
921        ENDIF
922      ENDIF ! iflag_wake>=1
923
924        IF (o_Vprecip%flag(iff)<=lev_files(iff)) THEN
925       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
926     $o_Vprecip%name,itau_w,Vprecip)
927        ENDIF
928
929        IF (o_ftd%flag(iff)<=lev_files(iff)) THEN
930       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
931     $o_ftd%name,itau_w,ftd)
932        ENDIF
933
934        IF (o_fqd%flag(iff)<=lev_files(iff)) THEN
935       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
936     $o_fqd%name,itau_w,fqd)
937        ENDIF
938
939      ELSEIF (iflag_con.EQ.30) THEN
940! sortie RomP convection descente insaturee iflag_con=30
941       IF (o_Vprecip%flag(iff)<=lev_files(iff)) THEN
942      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
943     $o_Vprecip%name,itau_w,Vprecip)
944       ENDIF
945      IF (o_wdtrainA%flag(iff)<=lev_files(iff)) THEN
946      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
947     $o_wdtrainA%name,itau_w,wdtrainA)
948      ENDIF
949      IF (o_wdtrainM%flag(iff)<=lev_files(iff)) THEN
950      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
951     $o_wdtrainM%name,itau_w,wdtrainM)
952      ENDIF
953
954      ENDIF !(iflag_con.EQ.3.or.iflag_con.EQ.30)
955 
956!!! nrlmd le 10/04/2012
957
958        IF (iflag_trig_bl>=1) THEN
959          IF (o_n2%flag(iff)<=lev_files(iff)) THEN
960        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
961     s                     o_n2%name,itau_w,n2)
962         ENDIF
963
964         IF (o_s2%flag(iff)<=lev_files(iff)) THEN
965        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
966     s                     o_s2%name,itau_w,s2)
967         ENDIF
968
969          IF (o_proba_notrig%flag(iff)<=lev_files(iff)) THEN
970        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
971     s                     o_proba_notrig%name,itau_w,proba_notrig)
972         ENDIF
973
974         IF (o_random_notrig%flag(iff)<=lev_files(iff)) THEN
975        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
976     s                     o_random_notrig%name,itau_w,random_notrig)
977         ENDIF
978
979         IF (o_ale_bl_stat%flag(iff)<=lev_files(iff)) THEN
980        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
981     s                     o_ale_bl_stat%name,itau_w,ale_bl_stat)
982         ENDIF
983
984         IF (o_ale_bl_trig%flag(iff)<=lev_files(iff)) THEN
985        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
986     s                     o_ale_bl_trig%name,itau_w,ale_bl_trig)
987         ENDIF
988       ENDIF  !(iflag_trig_bl>=1)
989
990        IF (iflag_clos_bl>=1) THEN
991         IF (o_alp_bl_det%flag(iff)<=lev_files(iff)) THEN
992        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
993     s                     o_alp_bl_det%name,itau_w,alp_bl_det)
994         ENDIF
995
996         IF (o_alp_bl_fluct_m%flag(iff)<=lev_files(iff)) THEN
997        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
998     s                     o_alp_bl_fluct_m%name,itau_w,alp_bl_fluct_m)
999         ENDIF
1000
1001         IF (o_alp_bl_fluct_tke%flag(iff)<=lev_files(iff)) THEN
1002        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1003     s                o_alp_bl_fluct_tke%name,itau_w,alp_bl_fluct_tke)
1004         ENDIF
1005
1006         IF (o_alp_bl_conv%flag(iff)<=lev_files(iff)) THEN
1007        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1008     s                     o_alp_bl_conv%name,itau_w,alp_bl_conv)
1009         ENDIF
1010
1011         IF (o_alp_bl_stat%flag(iff)<=lev_files(iff)) THEN
1012        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1013     s                     o_alp_bl_stat%name,itau_w,alp_bl_stat)
1014         ENDIF
1015       ENDIF  !(iflag_clos_bl>=1)
1016
1017!!! fin nrlmd le 10/04/2012
1018
1019      IF (type_ocean=='slab ') THEN
1020      IF ( o_slab_bils%flag(iff)<=lev_files(iff)) 
1021     $     CALL histwrite_phy(
1022     $     nid_files(iff),clef_stations(iff),
1023     $o_slab_bils%name,itau_w,slab_wfbils)
1024
1025      ENDIF !type_ocean == force/slab
1026
1027      IF (o_weakinv%flag(iff)<=lev_files(iff)) THEN
1028      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1029     s                  o_weakinv%name,itau_w,weak_inversion)
1030      ENDIF
1031
1032      IF (o_dthmin%flag(iff)<=lev_files(iff)) THEN
1033      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1034     $o_dthmin%name,itau_w,dthmin)
1035      ENDIF
1036
1037       IF (o_cldtau%flag(iff)<=lev_files(iff)) THEN
1038       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1039     $o_cldtau%name,itau_w,cldtau)
1040       ENDIF
1041
1042       IF (o_cldemi%flag(iff)<=lev_files(iff)) THEN
1043       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1044     $o_cldemi%name,itau_w,cldemi)
1045       ENDIF
1046
1047      IF (o_pr_con_l%flag(iff)<=lev_files(iff)) THEN
1048      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1049     s         o_pr_con_l%name,itau_w,pmflxr(:,1:klev))
1050      ENDIF
1051
1052      IF (o_pr_con_i%flag(iff)<=lev_files(iff)) THEN
1053      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1054     s         o_pr_con_i%name,itau_w,pmflxs(:,1:klev))
1055      ENDIF
1056
1057      IF (o_pr_lsc_l%flag(iff)<=lev_files(iff)) THEN
1058      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1059     s        o_pr_lsc_l%name,itau_w,prfl(:,1:klev))
1060      ENDIF
1061
1062      IF (o_pr_lsc_i%flag(iff)<=lev_files(iff)) THEN
1063      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1064     s        o_pr_lsc_i%name,itau_w,psfl(:,1:klev))
1065      ENDIF
1066
1067      IF (o_re%flag(iff)<=lev_files(iff)) THEN
1068      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1069     $o_re%name,itau_w,re)
1070      ENDIF
1071
1072      IF (o_fl%flag(iff)<=lev_files(iff)) THEN
1073      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1074     $o_fl%name,itau_w,fl)
1075      ENDIF
1076
1077
1078
1079      IF (o_rh2m%flag(iff)<=lev_files(iff)) THEN
1080      DO i=1, klon
1081       zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
1082      ENDDO
1083      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1084     $o_rh2m%name,itau_w,zx_tmp_fi2d)
1085      ENDIF
1086
1087      IF (.NOT.clef_stations(iff)) THEN
1088      IF (o_rh2m_min%flag(iff)<=lev_files(iff)) THEN
1089      DO i=1, klon
1090       zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
1091      ENDDO
1092      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1093     $o_rh2m_min%name,
1094     s               itau_w,zx_tmp_fi2d)
1095      ENDIF
1096
1097      IF (o_rh2m_max%flag(iff)<=lev_files(iff)) THEN
1098      DO i=1, klon
1099       zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
1100      ENDDO
1101      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1102     $o_rh2m_max%name,
1103     s              itau_w,zx_tmp_fi2d)
1104      ENDIF
1105      ENDIF
1106
1107
1108      IF (o_qsat2m%flag(iff)<=lev_files(iff)) THEN
1109      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1110     $o_qsat2m%name,itau_w,qsat2m)
1111      ENDIF
1112
1113      IF (o_tpot%flag(iff)<=lev_files(iff)) THEN
1114      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1115     $o_tpot%name,itau_w,tpot)
1116      ENDIF
1117
1118       IF (o_tpote%flag(iff)<=lev_files(iff)) THEN
1119      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1120     $o_tpote%name,itau_w,tpote)
1121       ENDIF
1122
1123      IF (o_SWnetOR%flag(iff)<=lev_files(iff)) THEN
1124      zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, is_ter)
1125      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1126     s                   o_SWnetOR%name,itau_w, zx_tmp_fi2d)
1127      ENDIF
1128
1129      IF (o_SWdownOR%flag(iff)<=lev_files(iff)) THEN
1130      zx_tmp_fi2d(1:klon) = solsw(1:klon)/(1.-albsol1(1:klon))
1131      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1132     s                   o_SWdownOR%name,itau_w, zx_tmp_fi2d)
1133      ENDIF
1134
1135      IF (o_LWdownOR%flag(iff)<=lev_files(iff)) THEN
1136      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1137     s                  o_LWdownOR%name,itau_w,sollwdown)
1138      ENDIF
1139
1140      IF (o_snowl%flag(iff)<=lev_files(iff)) THEN
1141      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1142     $o_snowl%name,itau_w,snow_lsc)
1143      ENDIF
1144
1145      IF (o_solldown%flag(iff)<=lev_files(iff)) THEN
1146      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1147     s                   o_solldown%name,itau_w,sollwdown)
1148      ENDIF
1149
1150      IF (o_dtsvdfo%flag(iff)<=lev_files(iff)) THEN
1151      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1152     s                 o_dtsvdfo%name,itau_w,d_ts(:,is_oce))
1153      ENDIF
1154
1155      IF (o_dtsvdft%flag(iff)<=lev_files(iff)) THEN
1156      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1157     s                   o_dtsvdft%name,itau_w,d_ts(:,is_ter))
1158      ENDIF
1159
1160       IF (o_dtsvdfg%flag(iff)<=lev_files(iff)) THEN
1161        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1162     $                   o_dtsvdfg%name,itau_w, d_ts(:,is_lic))
1163       ENDIF
1164
1165       IF (o_dtsvdfi%flag(iff)<=lev_files(iff)) THEN
1166      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1167     s                   o_dtsvdfi%name,itau_w,d_ts(:,is_sic))
1168       ENDIF
1169
1170       IF (o_rugs%flag(iff)<=lev_files(iff)) THEN
1171      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1172     $o_rugs%name,itau_w,zxrugs)
1173       ENDIF
1174
1175! OD550 per species
1176      IF (new_aod .and. (.not. aerosol_couple)) THEN
1177          IF (ok_ade.OR.ok_aie) THEN
1178
1179          IF (o_od550aer%flag(iff)<=lev_files(iff)) THEN
1180             CALL histwrite_phy(nid_files(iff),
1181     $clef_stations(iff),
1182     $o_od550aer%name,itau_w,
1183     $            od550aer)
1184          ENDIF
1185          IF (o_od865aer%flag(iff)<=lev_files(iff)) THEN
1186             CALL histwrite_phy(nid_files(iff),
1187     $clef_stations(iff),
1188     $o_od865aer%name,itau_w,
1189     $            od865aer)
1190          ENDIF
1191          IF (o_absvisaer%flag(iff)<=lev_files(iff)) THEN
1192             CALL histwrite_phy(nid_files(iff),
1193     $clef_stations(iff),
1194     $o_absvisaer%name,itau_w,
1195     $            absvisaer)
1196          ENDIF
1197          IF (o_od550lt1aer%flag(iff)<=lev_files(iff)) THEN
1198            CALL histwrite_phy(nid_files(iff),
1199     $clef_stations(iff),
1200     $o_od550lt1aer%name,itau_w,
1201     $            od550lt1aer)
1202          ENDIF
1203
1204          IF (o_sconcso4%flag(iff)<=lev_files(iff)) THEN
1205              CALL histwrite_phy(nid_files(iff),
1206     $clef_stations(iff),
1207     $o_sconcso4%name,itau_w,
1208     $            sconcso4)
1209          ENDIF
1210          IF (o_sconcoa%flag(iff)<=lev_files(iff)) THEN
1211              CALL histwrite_phy(nid_files(iff),
1212     $clef_stations(iff),
1213     $o_sconcoa%name,itau_w,
1214     $            sconcoa)
1215          ENDIF
1216          IF (o_sconcbc%flag(iff)<=lev_files(iff)) THEN
1217              CALL histwrite_phy(nid_files(iff),
1218     $clef_stations(iff),
1219     $o_sconcbc%name,itau_w,
1220     $            sconcbc)
1221          ENDIF
1222          IF (o_sconcss%flag(iff)<=lev_files(iff)) THEN
1223              CALL histwrite_phy(nid_files(iff),
1224     $clef_stations(iff),
1225     $o_sconcss%name,itau_w,
1226     $            sconcss)
1227          ENDIF
1228          IF (o_sconcdust%flag(iff)<=lev_files(iff)) THEN
1229              CALL histwrite_phy(nid_files(iff),
1230     $clef_stations(iff),
1231     $o_sconcdust%name,itau_w,
1232     $            sconcdust)
1233          ENDIF
1234         
1235          IF (o_concso4%flag(iff)<=lev_files(iff)) THEN
1236              CALL histwrite_phy(nid_files(iff),
1237     $clef_stations(iff),
1238     $o_concso4%name,itau_w,
1239     $            concso4)
1240          ENDIF
1241          IF (o_concoa%flag(iff)<=lev_files(iff)) THEN
1242              CALL histwrite_phy(nid_files(iff),
1243     $clef_stations(iff),
1244     $o_concoa%name,itau_w,
1245     $            concoa)
1246          ENDIF
1247          IF (o_concbc%flag(iff)<=lev_files(iff)) THEN
1248              CALL histwrite_phy(nid_files(iff),
1249     $clef_stations(iff),
1250     $o_concbc%name,itau_w,
1251     $            concbc)
1252          ENDIF
1253          IF (o_concss%flag(iff)<=lev_files(iff)) THEN
1254              CALL histwrite_phy(nid_files(iff),
1255     $clef_stations(iff),
1256     $o_concss%name,itau_w,
1257     $            concss)
1258          ENDIF
1259          IF (o_concdust%flag(iff)<=lev_files(iff)) THEN
1260              CALL histwrite_phy(nid_files(iff),
1261     $clef_stations(iff),
1262     $o_concdust%name,itau_w,
1263     $            concdust)
1264          ENDIF
1265         
1266          IF (o_loadso4%flag(iff)<=lev_files(iff)) THEN
1267              CALL histwrite_phy(nid_files(iff),
1268     $clef_stations(iff),
1269     $o_loadso4%name,itau_w,
1270     $            loadso4)
1271          ENDIF
1272          IF (o_loadoa%flag(iff)<=lev_files(iff)) THEN
1273              CALL histwrite_phy(nid_files(iff),
1274     $clef_stations(iff),
1275     $o_loadoa%name,itau_w,
1276     $            loadoa)
1277          ENDIF
1278          IF (o_loadbc%flag(iff)<=lev_files(iff)) THEN
1279              CALL histwrite_phy(nid_files(iff),
1280     $clef_stations(iff),
1281     $o_loadbc%name,itau_w,
1282     $            loadbc)
1283          ENDIF
1284          IF (o_loadss%flag(iff)<=lev_files(iff)) THEN
1285              CALL histwrite_phy(nid_files(iff),
1286     $clef_stations(iff),
1287     $o_loadss%name,itau_w,
1288     $            loadss)
1289          ENDIF
1290          IF (o_loaddust%flag(iff)<=lev_files(iff)) THEN
1291              CALL histwrite_phy(nid_files(iff),
1292     $clef_stations(iff),
1293     $o_loaddust%name,itau_w,
1294     $            loaddust)
1295          ENDIF
1296         
1297          DO naero = 1, naero_spc
1298            IF (o_tausumaero(naero)%flag(iff)<=lev_files(iff)) THEN
1299                CALL histwrite_phy(nid_files(iff),
1300     $clef_stations(iff),
1301     $              o_tausumaero(naero)%name,itau_w,
1302     $              tausum_aero(:,2,naero) )
1303            ENDIF
1304          END DO
1305          endif
1306      ENDIF
1307     
1308       IF (ok_ade) THEN
1309          IF (o_topswad%flag(iff)<=lev_files(iff)) THEN
1310             CALL histwrite_phy(nid_files(iff),
1311     $clef_stations(iff),
1312     $o_topswad%name,itau_w,
1313     $            topswad_aero)
1314          ENDIF
1315          IF (o_topswad0%flag(iff)<=lev_files(iff)) THEN
1316             CALL histwrite_phy(nid_files(iff),
1317     $clef_stations(iff),
1318     $o_topswad0%name,itau_w,
1319     $            topswad0_aero)
1320          ENDIF
1321          IF (o_solswad%flag(iff)<=lev_files(iff)) THEN
1322             CALL histwrite_phy(nid_files(iff),
1323     $clef_stations(iff),
1324     $o_solswad%name,itau_w,
1325     $            solswad_aero)
1326          ENDIF
1327          IF (o_solswad0%flag(iff)<=lev_files(iff)) THEN
1328             CALL histwrite_phy(nid_files(iff),
1329     $clef_stations(iff),
1330     $o_solswad0%name,itau_w,
1331     $            solswad0_aero)
1332          ENDIF
1333
1334!====MS forcing diagnostics
1335        if (new_aod) then             
1336        IF (o_swtoaas_nat%flag(iff)<=lev_files(iff)) THEN
1337        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1338     $o_swtoaas_nat%name,itau_w,
1339     $      topsw_aero(:,1))
1340        ENDIF
1341
1342        IF (o_swsrfas_nat%flag(iff)<=lev_files(iff)) THEN
1343        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1344     $o_swsrfas_nat%name,itau_w,
1345     $      solsw_aero(:,1))
1346        ENDIF
1347
1348        IF (o_swtoacs_nat%flag(iff)<=lev_files(iff)) THEN
1349        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1350     $o_swtoacs_nat%name,itau_w,
1351     $      topsw0_aero(:,1))
1352        ENDIF
1353
1354        IF (o_swsrfcs_nat%flag(iff)<=lev_files(iff)) THEN
1355        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1356     $o_swsrfcs_nat%name,itau_w,
1357     $      solsw0_aero(:,1))
1358        ENDIF
1359 
1360!ant
1361        IF (o_swtoaas_ant%flag(iff)<=lev_files(iff)) THEN
1362        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1363     $o_swtoaas_ant%name,itau_w,
1364     $      topsw_aero(:,2))
1365        ENDIF
1366
1367        IF (o_swsrfas_ant%flag(iff)<=lev_files(iff)) THEN
1368        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1369     $o_swsrfas_ant%name,itau_w,
1370     $      solsw_aero(:,2))
1371        ENDIF
1372
1373        IF (o_swtoacs_ant%flag(iff)<=lev_files(iff)) THEN
1374        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1375     $o_swtoacs_ant%name,itau_w,
1376     $      topsw0_aero(:,2))
1377        ENDIF
1378
1379        IF (o_swsrfcs_ant%flag(iff)<=lev_files(iff)) THEN
1380        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1381     $o_swsrfcs_ant%name,itau_w,
1382     $      solsw0_aero(:,2))
1383        ENDIF
1384
1385!cf
1386
1387        if (.not. aerosol_couple) then
1388        IF (o_swtoacf_nat%flag(iff)<=lev_files(iff)) THEN
1389        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1390     $o_swtoacf_nat%name,itau_w,
1391     $      topswcf_aero(:,1))
1392        ENDIF
1393
1394        IF (o_swsrfcf_nat%flag(iff)<=lev_files(iff)) THEN
1395        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1396     $o_swsrfcf_nat%name,itau_w,
1397     $      solswcf_aero(:,1))
1398        ENDIF
1399
1400        IF (o_swtoacf_ant%flag(iff)<=lev_files(iff)) THEN
1401        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1402     $o_swtoacf_ant%name,itau_w,
1403     $      topswcf_aero(:,2))
1404        ENDIF
1405
1406        IF (o_swsrfcf_ant%flag(iff)<=lev_files(iff)) THEN
1407        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1408     $o_swsrfcf_ant%name,itau_w,
1409     $      solswcf_aero(:,2))
1410        ENDIF
1411
1412        IF (o_swtoacf_zero%flag(iff)<=lev_files(iff)) THEN
1413        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1414     $o_swtoacf_zero%name,itau_w,
1415     $      topswcf_aero(:,3))
1416        ENDIF
1417
1418        IF (o_swsrfcf_zero%flag(iff)<=lev_files(iff)) THEN
1419        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1420     $o_swsrfcf_zero%name,itau_w,
1421     $      solswcf_aero(:,3))
1422        ENDIF
1423        endif
1424
1425        endif ! new_aod
1426!====MS forcing diagnostics
1427
1428       ENDIF
1429
1430       IF (ok_aie) THEN
1431          IF (o_topswai%flag(iff)<=lev_files(iff)) THEN
1432             CALL histwrite_phy(nid_files(iff),
1433     $clef_stations(iff),
1434     $o_topswai%name,itau_w,
1435     $            topswai_aero)
1436          ENDIF
1437          IF (o_solswai%flag(iff)<=lev_files(iff)) THEN
1438             CALL histwrite_phy(nid_files(iff),
1439     $clef_stations(iff),
1440     $o_solswai%name,itau_w,
1441     $            solswai_aero)
1442          ENDIF
1443          IF (o_scdnc%flag(iff)<=lev_files(iff)) THEN
1444             CALL histwrite_phy(nid_files(iff),
1445     $clef_stations(iff),
1446     $o_scdnc%name,itau_w,
1447     $            scdnc)
1448          ENDIF
1449          IF (o_cldncl%flag(iff)<=lev_files(iff)) THEN
1450             CALL histwrite_phy(nid_files(iff),
1451     $clef_stations(iff),
1452     $o_cldncl%name,itau_w,
1453     $            cldncl)
1454          ENDIF
1455         IF (o_reffclws%flag(iff)<=lev_files(iff)) THEN
1456            CALL histwrite_phy(nid_files(iff),
1457     $clef_stations(iff),
1458     $o_reffclws%name,itau_w,
1459     $            reffclws)
1460         ENDIF
1461         IF (o_reffclwc%flag(iff)<=lev_files(iff)) THEN
1462            CALL histwrite_phy(nid_files(iff),
1463     $clef_stations(iff),
1464     $o_reffclwc%name,itau_w,
1465     $            reffclwc)
1466         ENDIF
1467          IF (o_cldnvi%flag(iff)<=lev_files(iff)) THEN
1468             CALL histwrite_phy(nid_files(iff),
1469     $clef_stations(iff),
1470     $o_cldnvi%name,itau_w,
1471     $            cldnvi)
1472          ENDIF
1473          IF (o_lcc%flag(iff)<=lev_files(iff)) THEN
1474             CALL histwrite_phy(nid_files(iff),
1475     $clef_stations(iff),
1476     $o_lcc%name,itau_w,
1477     $            lcc)
1478          ENDIF
1479          IF (o_lcc3d%flag(iff)<=lev_files(iff)) THEN
1480             CALL histwrite_phy(nid_files(iff),
1481     $clef_stations(iff),
1482     $o_lcc3d%name,itau_w,
1483     $            lcc3d)
1484          ENDIF
1485          IF (o_lcc3dcon%flag(iff)<=lev_files(iff)) THEN
1486             CALL histwrite_phy(nid_files(iff),
1487     $clef_stations(iff),
1488     $o_lcc3dcon%name,itau_w,
1489     $            lcc3dcon)
1490          ENDIF
1491          IF (o_lcc3dstra%flag(iff)<=lev_files(iff)) THEN
1492             CALL histwrite_phy(nid_files(iff),
1493     $clef_stations(iff),
1494     $o_lcc3dstra%name,itau_w,
1495     $            lcc3dstra)
1496          ENDIF
1497          IF (o_reffclwtop%flag(iff)<=lev_files(iff)) THEN
1498             CALL histwrite_phy(nid_files(iff),
1499     $clef_stations(iff),
1500     $o_reffclwtop%name,itau_w,
1501     $            reffclwtop)
1502          ENDIF
1503       ENDIF
1504
1505! Champs 3D:
1506       IF (ok_ade .OR. ok_aie) then
1507          IF (o_ec550aer%flag(iff)<=lev_files(iff)) THEN
1508             CALL histwrite_phy(nid_files(iff),
1509     $clef_stations(iff),
1510     $o_ec550aer%name,itau_w,
1511     &            ec550aer)
1512          ENDIF
1513       ENDIF
1514
1515       IF (o_lwcon%flag(iff)<=lev_files(iff)) THEN
1516      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1517     $o_lwcon%name,itau_w,flwc)
1518       ENDIF
1519
1520       IF (o_iwcon%flag(iff)<=lev_files(iff)) THEN
1521      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1522     $o_iwcon%name,itau_w,fiwc)
1523       ENDIF
1524
1525       IF (o_temp%flag(iff)<=lev_files(iff)) THEN
1526      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1527     $o_temp%name,itau_w,t_seri)
1528       ENDIF
1529
1530       IF (o_theta%flag(iff)<=lev_files(iff)) THEN
1531      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1532     $o_theta%name,itau_w,theta)
1533       ENDIF
1534
1535       IF (o_ovapinit%flag(iff)<=lev_files(iff)) THEN
1536      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1537     $o_ovapinit%name,itau_w,
1538     $ qx(:,:,ivap))
1539       ENDIF
1540
1541       IF (o_ovap%flag(iff)<=lev_files(iff)) THEN
1542      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1543     $                   o_ovap%name,itau_w,q_seri)
1544       ENDIF
1545                                                               
1546       IF (o_oliq%flag(iff)<=lev_files(iff)) THEN             
1547      CALL histwrite_phy(nid_files(iff),clef_stations(iff),   
1548     $                   o_oliq%name,itau_w,ql_seri)           
1549       ENDIF
1550
1551       IF (o_geop%flag(iff)<=lev_files(iff)) THEN
1552      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1553     $o_geop%name,itau_w,zphi)
1554       ENDIF
1555
1556       IF (o_vitu%flag(iff)<=lev_files(iff)) THEN
1557      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1558     $o_vitu%name,itau_w,u_seri)
1559       ENDIF
1560
1561       IF (o_vitv%flag(iff)<=lev_files(iff)) THEN
1562      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1563     $o_vitv%name,itau_w,v_seri)
1564       ENDIF
1565
1566       IF (o_vitw%flag(iff)<=lev_files(iff)) THEN
1567      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1568     $o_vitw%name,itau_w,omega)
1569       ENDIF
1570
1571        IF (o_pres%flag(iff)<=lev_files(iff)) THEN
1572      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1573     $o_pres%name,itau_w,pplay)
1574        ENDIF
1575
1576        IF (o_paprs%flag(iff)<=lev_files(iff)) THEN
1577      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1578     $o_paprs%name,
1579     s                    itau_w,paprs(:,1:klev))
1580        ENDIF
1581
1582        IF (o_zfull%flag(iff)<=lev_files(iff)) THEN
1583         DO i=1, klon
1584          zx_tmp_fi3d1(i,1)= pphis(i)/RG
1585!020611   zx_tmp_fi3d(i,1)= pphis(i)/RG
1586         ENDDO
1587         DO k=1, klev
1588!020611        DO k=1, klev-1
1589         DO i=1, klon
1590!020611         zx_tmp_fi3d(i,k+1)= zx_tmp_fi3d(i,k) - (t_seri(i,k) *RD * 
1591          zx_tmp_fi3d1(i,k+1)= zx_tmp_fi3d1(i,k) - (t_seri(i,k) *RD * 
1592     $    (paprs(i,k+1) - paprs(i,k))) / ( pplay(i,k) * RG ) 
1593         ENDDO
1594         ENDDO
1595      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1596     $o_zfull%name,itau_w,zx_tmp_fi3d1(:,2:klevp1))
1597!020611    $o_zfull%name,itau_w,zx_tmp_fi3d)
1598        ENDIF
1599
1600        IF (o_zhalf%flag(iff)<=lev_files(iff)) THEN
1601         DO i=1, klon
1602          zx_tmp_fi3d(i,1)= pphis(i)/RG - (
1603     $    (t_seri(i,1)+zxtsol(i))/2. *RD *
1604     $    (pplay(i,1) - paprs(i,1)))/( (paprs(i,1)+pplay(i,1))/2. * RG)
1605         ENDDO
1606         DO k=1, klev-1
1607         DO i=1, klon
1608          zx_tmp_fi3d(i,k+1)= zx_tmp_fi3d(i,k) - (
1609     $    (t_seri(i,k)+t_seri(i,k+1))/2. *RD * 
1610     $    (pplay(i,k+1) - pplay(i,k))) / ( paprs(i,k) * RG ) 
1611         ENDDO
1612         ENDDO
1613      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1614     $o_zhalf%name,itau_w,zx_tmp_fi3d)
1615        ENDIF
1616
1617       IF (o_rneb%flag(iff)<=lev_files(iff)) THEN
1618      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1619     $o_rneb%name,itau_w,cldfra)
1620       ENDIF
1621
1622       IF (o_rnebcon%flag(iff)<=lev_files(iff)) THEN
1623      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1624     $o_rnebcon%name,itau_w,rnebcon)
1625       ENDIF
1626
1627       IF (o_rnebls%flag(iff)<=lev_files(iff)) THEN
1628      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1629     $o_rnebls%name,itau_w,rneb)
1630       ENDIF
1631
1632       IF (o_rhum%flag(iff)<=lev_files(iff)) THEN
1633      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1634     $o_rhum%name,itau_w,zx_rh)
1635       ENDIF
1636
1637      IF (o_ozone%flag(iff)<=lev_files(iff)) THEN
1638         CALL histwrite_phy(nid_files(iff),clef_stations(iff), 
1639     $o_ozone%name, itau_w,
1640     $        wo(:, :, 1) * dobson_u * 1e3 / zmasse / rmo3 * rmd)
1641      ENDIF
1642
1643      IF (o_ozone_light%flag(iff)<=lev_files(iff) .and.
1644     $     read_climoz == 2) THEN
1645         CALL histwrite_phy(nid_files(iff),clef_stations(iff), 
1646     $o_ozone_light%name, itau_w,
1647     $        wo(:, :, 2) * dobson_u * 1e3 / zmasse / rmo3 * rmd)
1648      ENDIF
1649
1650       IF (o_dtphy%flag(iff)<=lev_files(iff)) THEN
1651      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1652     $o_dtphy%name,itau_w,d_t)
1653       ENDIF
1654
1655       IF (o_dqphy%flag(iff)<=lev_files(iff)) THEN
1656      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1657     s                  o_dqphy%name,itau_w, d_qx(:,:,ivap))
1658       ENDIF
1659
1660        DO nsrf=1, nbsrf
1661        IF (o_albe_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
1662        zx_tmp_fi2d(1 : klon) = falb1( 1 : klon, nsrf)
1663        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1664     s                    o_albe_srf(nsrf)%name,itau_w,
1665     $                     zx_tmp_fi2d)
1666        ENDIF
1667
1668        IF (o_rugs_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 
1669        zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf)
1670        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1671     s                     o_rugs_srf(nsrf)%name,itau_w,
1672     $      zx_tmp_fi2d)
1673        ENDIF
1674
1675        IF (o_ages_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
1676        zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf)
1677        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1678     s                     o_ages_srf(nsrf)%name,itau_w
1679     $    ,zx_tmp_fi2d)
1680        ENDIF
1681        ENDDO !nsrf=1, nbsrf
1682
1683       IF (o_alb1%flag(iff)<=lev_files(iff)) THEN
1684      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1685     $o_alb1%name,itau_w,albsol1)
1686       ENDIF
1687
1688       IF (o_alb2%flag(iff)<=lev_files(iff)) THEN
1689      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1690     $o_alb2%name,itau_w,albsol2)
1691       ENDIF
1692
1693!FH Sorties pour la couche limite
1694      if (iflag_pbl>1) then
1695      zx_tmp_fi3d=0.
1696      do nsrf=1,nbsrf
1697         do k=1,klev
1698          zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k)
1699     $    +pctsrf(:,nsrf)*pbl_tke(:,k,nsrf)
1700         enddo
1701      enddo
1702       IF (o_tke%flag(iff)<=lev_files(iff)) THEN
1703      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1704     $o_tke%name,itau_w,zx_tmp_fi3d)
1705       ENDIF
1706
1707      IF (.NOT.clef_stations(iff)) THEN
1708       IF (o_tke_max%flag(iff)<=lev_files(iff)) THEN
1709      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1710     s                   o_tke_max%name,itau_w,zx_tmp_fi3d)
1711       ENDIF
1712      ENDIF
1713      endif
1714
1715       IF (o_kz%flag(iff)<=lev_files(iff)) THEN
1716      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1717     $o_kz%name,itau_w,coefh)
1718       ENDIF
1719
1720      IF (.NOT.clef_stations(iff)) THEN
1721       IF (o_kz_max%flag(iff)<=lev_files(iff)) THEN
1722      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1723     $o_kz_max%name,itau_w,coefh)
1724       ENDIF
1725      ENDIF
1726
1727       IF (o_clwcon%flag(iff)<=lev_files(iff)) THEN
1728      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1729     $o_clwcon%name,itau_w,clwcon0)
1730       ENDIF
1731
1732       IF (o_dtdyn%flag(iff)<=lev_files(iff)) THEN
1733      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1734     $o_dtdyn%name,itau_w,d_t_dyn)
1735       ENDIF
1736
1737       IF (o_dqdyn%flag(iff)<=lev_files(iff)) THEN
1738      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1739     $o_dqdyn%name,itau_w,d_q_dyn)
1740       ENDIF
1741
1742       IF (o_dudyn%flag(iff)<=lev_files(iff)) THEN
1743      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1744     $o_dudyn%name,itau_w,d_u_dyn)
1745       ENDIF                                                   
1746
1747       IF (o_dvdyn%flag(iff)<=lev_files(iff)) THEN                 
1748      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1749     $o_dvdyn%name,itau_w,d_v_dyn) 
1750       ENDIF                                                     
1751
1752       IF (o_dtcon%flag(iff)<=lev_files(iff)) THEN
1753      zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys
1754      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1755     $o_dtcon%name,itau_w,zx_tmp_fi3d)
1756      ENDIF                                                     
1757
1758      if(iflag_thermals.eq.1)then
1759      IF (o_tntc%flag(iff)<=lev_files(iff)) THEN
1760      zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys +
1761     $                           d_t_ajsb(1:klon,1:klev)/pdtphys
1762      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1763     $o_tntc%name,itau_w,zx_tmp_fi3d)
1764      ENDIF
1765      else if(iflag_thermals.gt.1.and.iflag_wake.EQ.1)then
1766      IF (o_tntc%flag(iff)<=lev_files(iff)) THEN
1767      zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys +
1768     $                           d_t_ajs(1:klon,1:klev)/pdtphys +
1769     $                           d_t_wake(1:klon,1:klev)/pdtphys
1770      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1771     $o_tntc%name,itau_w,zx_tmp_fi3d)
1772      ENDIF
1773      endif
1774
1775       IF (o_ducon%flag(iff)<=lev_files(iff)) THEN
1776      zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys
1777      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1778     $o_ducon%name,itau_w,zx_tmp_fi3d)
1779       ENDIF
1780
1781       IF (o_dvcon%flag(iff)<=lev_files(iff)) THEN
1782      zx_tmp_fi3d(1:klon,1:klev)=d_v_con(1:klon,1:klev)/pdtphys
1783      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1784     $o_dvcon%name,itau_w,zx_tmp_fi3d)
1785       ENDIF
1786
1787       IF (o_dqcon%flag(iff)<=lev_files(iff)) THEN
1788      zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
1789      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1790     $o_dqcon%name,itau_w,zx_tmp_fi3d)
1791       ENDIF
1792
1793      if(iflag_thermals.eq.1)then
1794       IF (o_tnhusc%flag(iff)<=lev_files(iff)) THEN
1795      zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
1796      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1797     $o_tnhusc%name,itau_w,zx_tmp_fi3d)
1798       ENDIF
1799      else if(iflag_thermals.gt.1.and.iflag_wake.EQ.1)then
1800      IF (o_tnhusc%flag(iff)<=lev_files(iff)) THEN
1801      zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys +
1802     $                           d_q_ajs(1:klon,1:klev)/pdtphys +
1803     $                           d_q_wake(1:klon,1:klev)/pdtphys
1804      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1805     $o_tnhusc%name,itau_w,zx_tmp_fi3d)
1806      ENDIF
1807      endif
1808
1809       IF (o_dtlsc%flag(iff)<=lev_files(iff)) THEN
1810      zx_tmp_fi3d(1:klon,1:klev)=d_t_lsc(1:klon,1:klev)/pdtphys
1811      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1812     $o_dtlsc%name,itau_w,zx_tmp_fi3d)
1813       ENDIF
1814
1815       IF (o_dtlschr%flag(iff)<=lev_files(iff)) THEN
1816      zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+
1817     $                           d_t_eva(1:klon,1:klev))/pdtphys
1818      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1819     s                   o_dtlschr%name,itau_w,zx_tmp_fi3d)
1820       ENDIF
1821
1822       IF (o_dqlsc%flag(iff)<=lev_files(iff)) THEN
1823      zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys
1824      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1825     $o_dqlsc%name,itau_w,zx_tmp_fi3d)
1826       ENDIF
1827
1828       IF (o_beta_prec%flag(iff)<=lev_files(iff)) THEN
1829      zx_tmp_fi3d(1:klon,1:klev)=beta_prec(1:klon,1:klev)
1830      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1831     $o_beta_prec%name,itau_w,zx_tmp_fi3d)
1832       ENDIF
1833
1834!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1835! Sorties specifiques a la separation thermiques/non thermiques
1836       if (iflag_thermals>=1) then
1837
1838       IF (o_dtlscth%flag(iff)<=lev_files(iff)) THEN
1839      zx_tmp_fi3d(1:klon,1:klev)=d_t_lscth(1:klon,1:klev)/pdtphys
1840      CALL
1841     s histwrite_phy(nid_files(iff),clef_stations(iff),
1842     $o_dtlscth%name,itau_w,zx_tmp_fi3d)
1843       ENDIF
1844
1845       IF (o_dtlscst%flag(iff)<=lev_files(iff)) THEN
1846      zx_tmp_fi3d(1:klon,1:klev)=d_t_lscst(1:klon,1:klev)/pdtphys
1847      CALL
1848     s histwrite_phy(nid_files(iff),clef_stations(iff),
1849     $o_dtlscst%name,itau_w,zx_tmp_fi3d)
1850       ENDIF
1851
1852       IF (o_dqlscth%flag(iff)<=lev_files(iff)) THEN
1853      zx_tmp_fi3d(1:klon,1:klev)=d_q_lscth(1:klon,1:klev)/pdtphys
1854      CALL
1855     s histwrite_phy(nid_files(iff),clef_stations(iff),
1856     $o_dqlscth%name,itau_w,zx_tmp_fi3d)
1857       ENDIF
1858
1859       IF (o_dqlscst%flag(iff)<=lev_files(iff)) THEN
1860      zx_tmp_fi3d(1:klon,1:klev)=d_q_lscst(1:klon,1:klev)/pdtphys
1861      CALL
1862     s histwrite_phy(nid_files(iff),clef_stations(iff),
1863     $o_dqlscst%name,itau_w,zx_tmp_fi3d)
1864       ENDIF
1865
1866       IF (o_plulth%flag(iff)<=lev_files(iff)) THEN
1867      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1868     $o_plulth%name,itau_w,plul_th)
1869       ENDIF
1870
1871       IF (o_plulst%flag(iff)<=lev_files(iff)) THEN
1872      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1873     $o_plulst%name,itau_w,plul_st)
1874       ENDIF
1875
1876      do k=1,klev
1877      do i=1,klon
1878          if (ptconvth(i,k)) then
1879           zx_tmp_fi3d(i,k)=1.
1880          else
1881           zx_tmp_fi3d(i,k)=0.
1882          endif
1883      enddo
1884      enddo
1885       IF (o_ptconvth%flag(iff)<=lev_files(iff)) THEN
1886      CALL
1887     s  histwrite_phy(nid_files(iff),clef_stations(iff),
1888     $o_ptconvth%name,itau_w,zx_tmp_fi3d)
1889       ENDIF
1890
1891      do i=1,klon
1892           zx_tmp_fi2d(1:klon)=lmax_th(:)
1893      enddo
1894       IF (o_ptconvth%flag(iff)<=lev_files(iff)) THEN
1895      CALL
1896     s histwrite_phy(nid_files(iff),clef_stations(iff),
1897     $o_lmaxth%name,itau_w,zx_tmp_fi2d)
1898       ENDIF
1899
1900      endif ! iflag_thermals>=1
1901
1902!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1903
1904       IF (o_dtvdf%flag(iff)<=lev_files(iff)) THEN
1905      zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys
1906      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1907     $o_dtvdf%name,itau_w,zx_tmp_fi3d)
1908       ENDIF
1909
1910       IF (o_dqvdf%flag(iff)<=lev_files(iff)) THEN
1911      zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
1912      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1913     $o_dqvdf%name,itau_w,zx_tmp_fi3d)
1914       ENDIF
1915
1916       IF (o_dteva%flag(iff)<=lev_files(iff)) THEN
1917      zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys
1918      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1919     $o_dteva%name,itau_w,zx_tmp_fi3d)
1920       ENDIF
1921
1922       IF (o_dqeva%flag(iff)<=lev_files(iff)) THEN
1923      zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys
1924      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1925     $o_dqeva%name,itau_w,zx_tmp_fi3d)
1926       ENDIF
1927
1928       IF (o_ptconv%flag(iff)<=lev_files(iff)) THEN
1929      zpt_conv = 0.
1930      where (ptconv) zpt_conv = 1.
1931      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1932     $o_ptconv%name,itau_w,zpt_conv)
1933       ENDIF
1934
1935       IF (o_ratqs%flag(iff)<=lev_files(iff)) THEN
1936      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1937     $o_ratqs%name,itau_w,ratqs)
1938       ENDIF
1939
1940       IF (o_dtthe%flag(iff)<=lev_files(iff)) THEN
1941      zx_tmp_fi3d(1:klon,1:klev)=d_t_ajs(1:klon,1:klev)/pdtphys -
1942     $                           d_t_ajsb(1:klon,1:klev)/pdtphys
1943      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1944     $o_dtthe%name,itau_w,zx_tmp_fi3d)
1945       ENDIF
1946
1947       IF (iflag_thermals>=1) THEN
1948        IF (o_ftime_th%flag(iff)<=lev_files(iff)) THEN
1949! Pour l instant 0 a y reflichir pour les thermiques
1950         zx_tmp_fi2d=0. 
1951        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1952     $o_ftime_th%name,
1953     s                     itau_w,zx_tmp_fi2d)
1954        ENDIF
1955
1956        IF (o_f_th%flag(iff)<=lev_files(iff)) THEN
1957        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1958     $o_f_th%name,itau_w,fm_therm)
1959        ENDIF
1960
1961        IF (o_e_th%flag(iff)<=lev_files(iff)) THEN
1962        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1963     $o_e_th%name,itau_w,entr_therm)
1964        ENDIF
1965
1966        IF (o_w_th%flag(iff)<=lev_files(iff)) THEN
1967        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1968     $o_w_th%name,itau_w,zw2)
1969        ENDIF
1970
1971        IF (o_q_th%flag(iff)<=lev_files(iff)) THEN
1972        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1973     $o_q_th%name,itau_w,zqasc)
1974        ENDIF
1975
1976
1977        IF (o_a_th%flag(iff)<=lev_files(iff)) THEN
1978        CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1979     $o_a_th%name,itau_w,fraca)
1980        ENDIF
1981
1982       IF (o_d_th%flag(iff)<=lev_files(iff)) THEN
1983       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1984     $o_d_th%name,itau_w,detr_therm)
1985       ENDIF
1986
1987       IF (o_f0_th%flag(iff)<=lev_files(iff)) THEN
1988      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1989     $o_f0_th%name,itau_w,f0)
1990       ENDIF
1991
1992       IF (o_zmax_th%flag(iff)<=lev_files(iff)) THEN
1993       CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1994     $o_zmax_th%name,itau_w,zmax_th)
1995       ENDIF
1996
1997       IF (o_dqthe%flag(iff)<=lev_files(iff)) THEN
1998      zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys -
1999     $                           d_q_ajsb(1:klon,1:klev)/pdtphys
2000      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2001     $o_dqthe%name,itau_w,zx_tmp_fi3d)
2002       ENDIF
2003
2004      ENDIF !iflag_thermals
2005
2006       IF (o_dtajs%flag(iff)<=lev_files(iff)) THEN
2007      zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys
2008      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2009     $o_dtajs%name,itau_w,zx_tmp_fi3d)
2010       ENDIF
2011
2012       IF (o_dqajs%flag(iff)<=lev_files(iff)) THEN
2013      zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys
2014      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2015     $o_dqajs%name,itau_w,zx_tmp_fi3d)
2016       ENDIF
2017
2018       IF (o_dtswr%flag(iff)<=lev_files(iff)) THEN
2019      zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY
2020      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2021     $o_dtswr%name,itau_w,zx_tmp_fi3d)
2022       ENDIF
2023
2024       IF (o_dtsw0%flag(iff)<=lev_files(iff)) THEN
2025      zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)/RDAY
2026      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2027     $o_dtsw0%name,itau_w,zx_tmp_fi3d)
2028       ENDIF
2029
2030       IF (o_dtlwr%flag(iff)<=lev_files(iff)) THEN
2031      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY
2032      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2033     $o_dtlwr%name,itau_w,zx_tmp_fi3d)
2034       ENDIF
2035
2036       IF (o_dtlw0%flag(iff)<=lev_files(iff)) THEN
2037      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)/RDAY
2038      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2039     $o_dtlw0%name,itau_w,zx_tmp_fi3d)
2040       ENDIF
2041
2042       IF (o_dtec%flag(iff)<=lev_files(iff)) THEN
2043      zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)/pdtphys
2044      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2045     $o_dtec%name,itau_w,zx_tmp_fi3d)
2046       ENDIF
2047
2048       IF (o_duvdf%flag(iff)<=lev_files(iff)) THEN
2049      zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
2050      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2051     $o_duvdf%name,itau_w,zx_tmp_fi3d)
2052       ENDIF
2053
2054       IF (o_dvvdf%flag(iff)<=lev_files(iff)) THEN
2055      zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
2056      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2057     $o_dvvdf%name,itau_w,zx_tmp_fi3d)
2058       ENDIF
2059
2060       IF (ok_orodr) THEN
2061      IF (o_duoro%flag(iff)<=lev_files(iff)) THEN
2062      zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
2063      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2064     $o_duoro%name,itau_w,zx_tmp_fi3d)
2065       ENDIF
2066
2067      IF (o_dvoro%flag(iff)<=lev_files(iff)) THEN
2068      zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
2069      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2070     $o_dvoro%name,itau_w,zx_tmp_fi3d)
2071      ENDIF
2072
2073      IF (o_dtoro%flag(iff)<=lev_files(iff)) THEN
2074      zx_tmp_fi3d(1:klon,1:klev)=d_t_oro(1:klon,1:klev)/pdtphys
2075      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2076     $o_dtoro%name,itau_w,zx_tmp_fi3d)
2077      ENDIF
2078       ENDIF
2079
2080        IF (ok_orolf) THEN
2081       IF (o_dulif%flag(iff)<=lev_files(iff)) THEN
2082      zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
2083      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2084     $o_dulif%name,itau_w,zx_tmp_fi3d)
2085       ENDIF
2086
2087        IF (o_dvlif%flag(iff)<=lev_files(iff)) THEN
2088      zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
2089      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2090     $o_dvlif%name,itau_w,zx_tmp_fi3d)
2091       ENDIF
2092
2093        IF (o_dtlif%flag(iff)<=lev_files(iff)) THEN
2094      zx_tmp_fi3d(1:klon,1:klev)=d_t_lif(1:klon,1:klev)/pdtphys
2095      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2096     $o_dtlif%name,itau_w,zx_tmp_fi3d)
2097       ENDIF
2098        ENDIF
2099
2100       IF (ok_hines) THEN
2101       IF (o_duhin%flag(iff)<=lev_files(iff)) THEN
2102      zx_tmp_fi3d(1:klon,1:klev)=d_u_hin(1:klon,1:klev)/pdtphys
2103      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2104     $o_duhin%name,itau_w,zx_tmp_fi3d)
2105       ENDIF
2106
2107
2108        IF (o_dvhin%flag(iff)<=lev_files(iff)) THEN
2109      zx_tmp_fi3d(1:klon,1:klev)=d_v_hin(1:klon,1:klev)/pdtphys
2110      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2111     $o_dvhin%name,itau_w,zx_tmp_fi3d)
2112       ENDIF
2113
2114        IF (o_dthin%flag(iff)<=lev_files(iff)) THEN
2115      zx_tmp_fi3d(1:klon,1:klev)=d_t_hin(1:klon,1:klev)/pdtphys
2116      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2117     $o_dthin%name,itau_w,zx_tmp_fi3d)
2118       ENDIF
2119        ENDIF
2120
2121       IF (o_rsu%flag(iff)<=lev_files(iff)) THEN
2122      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2123     $o_rsu%name,itau_w,swup)
2124       ENDIF
2125       IF (o_rsd%flag(iff)<=lev_files(iff)) THEN
2126      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2127     $o_rsd%name,itau_w,swdn)
2128       ENDIF
2129       IF (o_rlu%flag(iff)<=lev_files(iff)) THEN
2130      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2131     $o_rlu%name,itau_w,lwup)
2132       ENDIF
2133       IF (o_rld%flag(iff)<=lev_files(iff)) THEN
2134      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2135     $o_rld%name,itau_w,lwdn)
2136       ENDIF
2137
2138       IF (o_rsucs%flag(iff)<=lev_files(iff)) THEN
2139      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2140     $o_rsucs%name,itau_w,swup0)
2141       ENDIF
2142       IF (o_rsdcs%flag(iff)<=lev_files(iff)) THEN
2143      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2144     $o_rsdcs%name,itau_w,swdn0)
2145       ENDIF
2146       IF (o_rlucs%flag(iff)<=lev_files(iff)) THEN
2147      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2148     $o_rlucs%name,itau_w,lwup0)
2149       ENDIF
2150       IF (o_rldcs%flag(iff)<=lev_files(iff)) THEN
2151      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2152     $o_rldcs%name,itau_w,lwdn0)
2153       ENDIF
2154
2155       IF (o_tnt%flag(iff)<=lev_files(iff)) THEN
2156      zx_tmp_fi3d(1:klon,1:klev)=d_t(1:klon,1:klev)+
2157     $d_t_dyn(1:klon,1:klev)
2158      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2159     $o_tnt%name,itau_w,zx_tmp_fi3d)
2160       ENDIF
2161
2162       IF (o_tntr%flag(iff)<=lev_files(iff)) THEN
2163      zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY -
2164     $cool(1:klon,1:klev)/RDAY
2165      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2166     $o_tntr%name,itau_w,zx_tmp_fi3d)
2167       ENDIF
2168
2169       IF (o_tntscpbl%flag(iff)<=lev_files(iff)) THEN
2170      zx_tmp_fi3d(1:klon,1:klev)= (d_t_lsc(1:klon,1:klev)+
2171     $                             d_t_eva(1:klon,1:klev)+
2172     $                             d_t_vdf(1:klon,1:klev))/pdtphys
2173      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2174     $o_tntscpbl%name,itau_w,zx_tmp_fi3d)
2175       ENDIF
2176
2177       IF (o_tnhus%flag(iff)<=lev_files(iff)) THEN
2178      zx_tmp_fi3d(1:klon,1:klev)=d_qx(1:klon,1:klev,ivap)+
2179     $d_q_dyn(1:klon,1:klev)
2180      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2181     $o_tnhus%name,itau_w,zx_tmp_fi3d)
2182       ENDIF
2183
2184       IF (o_tnhusscpbl%flag(iff)<=lev_files(iff)) THEN
2185      zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys+
2186     $                           d_q_eva(1:klon,1:klev)/pdtphys
2187      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2188     $o_tnhusscpbl%name,itau_w,zx_tmp_fi3d)
2189       ENDIF
2190
2191       IF (o_evu%flag(iff)<=lev_files(iff)) THEN
2192      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2193     $o_evu%name,itau_w,coefm)
2194       ENDIF
2195
2196       IF (o_h2o%flag(iff)<=lev_files(iff)) THEN
2197      zx_tmp_fi3d(1:klon,1:klev)=q_seri(1:klon,1:klev)+
2198     $                           ql_seri(1:klon,1:klev) 
2199      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2200     $o_h2o%name,itau_w,zx_tmp_fi3d)
2201       ENDIF
2202
2203       if (iflag_con >= 3) then
2204          IF (o_mcd%flag(iff)<=lev_files(iff)) THEN
2205             zx_tmp_fi3d(1:klon,1:klev)=-1 * (dnwd(1:klon,1:klev)+
2206     $            dnwd0(1:klon,1:klev)) 
2207             CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2208     $            o_mcd%name,itau_w,zx_tmp_fi3d)
2209          ENDIF
2210
2211          IF (o_dmc%flag(iff)<=lev_files(iff)) THEN
2212             zx_tmp_fi3d(1:klon,1:klev)=upwd(1:klon,1:klev) +
2213     $            dnwd(1:klon,1:klev)+ dnwd0(1:klon,1:klev) 
2214             CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2215     $            o_dmc%name,itau_w,zx_tmp_fi3d)
2216          ENDIF
2217       else if (iflag_con == 2) then
2218          IF (o_mcd%flag(iff) <= lev_files(iff)) THEN
2219             CALL histwrite_phy(nid_files(iff), clef_stations(iff),
2220     $            o_mcd%name, itau_w, pmfd)
2221          ENDIF
2222
2223          IF (o_dmc%flag(iff) <= lev_files(iff)) THEN
2224             CALL histwrite_phy(nid_files(iff), clef_stations(iff),
2225     $            o_dmc%name, itau_w, pmfu + pmfd)
2226          ENDIF
2227       end if
2228
2229       IF (o_ref_liq%flag(iff)<=lev_files(iff)) THEN
2230      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2231     $o_ref_liq%name,itau_w,ref_liq)
2232       ENDIF
2233
2234       IF (o_ref_ice%flag(iff)<=lev_files(iff)) THEN
2235      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2236     $o_ref_ice%name,itau_w,ref_ice)
2237       ENDIF
2238
2239      if (RCO2_per.NE.RCO2_act.OR.RCH4_per.NE.RCH4_act.OR.
2240     $ RN2O_per.NE.RN2O_act.OR.RCFC11_per.NE.RCFC11_act.OR.
2241     $ RCFC12_per.NE.RCFC12_act) THEN
2242
2243       IF (o_rsut4co2%flag(iff)<=lev_files(iff)) THEN
2244      zx_tmp_fi2d(1 : klon) = swupp ( 1 : klon, klevp1 )
2245      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2246     $o_rsut4co2%name,itau_w,zx_tmp_fi2d)
2247       ENDIF
2248
2249       IF (o_rlut4co2%flag(iff)<=lev_files(iff)) THEN
2250      zx_tmp_fi2d(1 : klon) = lwupp ( 1 : klon, klevp1 )
2251      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2252     $o_rlut4co2%name,itau_w,zx_tmp_fi2d)
2253       ENDIF
2254
2255       IF (o_rsutcs4co2%flag(iff)<=lev_files(iff)) THEN
2256      zx_tmp_fi2d(1 : klon) = swup0p ( 1 : klon, klevp1 )
2257      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2258     $o_rsutcs4co2%name,itau_w,zx_tmp_fi2d)
2259       ENDIF
2260
2261       IF (o_rlutcs4co2%flag(iff)<=lev_files(iff)) THEN
2262      zx_tmp_fi2d(1 : klon) = lwup0p ( 1 : klon, klevp1 )
2263      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2264     $o_rlutcs4co2%name,itau_w,zx_tmp_fi2d)
2265       ENDIF
2266
2267       IF (o_rsu4co2%flag(iff)<=lev_files(iff)) THEN
2268      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2269     $o_rsu4co2%name,itau_w,swupp)
2270       ENDIF
2271
2272       IF (o_rlu4co2%flag(iff)<=lev_files(iff)) THEN
2273      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2274     $o_rlu4co2%name,itau_w,lwupp)
2275       ENDIF
2276
2277       IF (o_rsucs4co2%flag(iff)<=lev_files(iff)) THEN
2278      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2279     $o_rsucs4co2%name,itau_w,swup0p)
2280       ENDIF
2281
2282       IF (o_rlucs4co2%flag(iff)<=lev_files(iff)) THEN
2283      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2284     $o_rlucs4co2%name,itau_w,lwup0p)
2285       ENDIF
2286
2287       IF (o_rsd4co2%flag(iff)<=lev_files(iff)) THEN
2288      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2289     $o_rsd4co2%name,itau_w,swdnp)
2290       ENDIF
2291
2292       IF (o_rld4co2%flag(iff)<=lev_files(iff)) THEN
2293      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2294     $o_rld4co2%name,itau_w,lwdnp)
2295       ENDIF
2296
2297       IF (o_rsdcs4co2%flag(iff)<=lev_files(iff)) THEN
2298      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2299     $o_rsdcs4co2%name,itau_w,swdn0p)
2300       ENDIF
2301
2302       IF (o_rldcs4co2%flag(iff)<=lev_files(iff)) THEN
2303      CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2304     $o_rldcs4co2%name,itau_w,lwdn0p)
2305       ENDIF
2306
2307      endif
2308
2309        if (nqtot.GE.3) THEN
2310         DO iq=3,nqtot
2311       IF (o_trac(iq-2)%flag(iff)<=lev_files(iff)) THEN
2312         CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2313     s                  o_trac(iq-2)%name,itau_w,qx(:,:,iq))
2314       ENDIF
2315         ENDDO
2316         DO iq=3,nqtot
2317       IF (o_trac_cum(iq-2)%flag(iff)<=lev_files(iff)) THEN
2318         zx_tmp_fi2d=0.
2319         do k=1,klev
2320            zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*qx(:,k,iq)
2321         enddo
2322         CALL histwrite_phy(nid_files(iff),clef_stations(iff),
2323     s                  o_trac_cum(iq-2)%name,itau_w,zx_tmp_fi2d)
2324
2325       ENDIF
2326         ENDDO
2327        endif
2328
2329      if (ok_sync) then
2330c$OMP MASTER
2331      call histsync(nid_files(iff))
2332c$OMP END MASTER
2333      endif
2334
2335       ENDIF ! clef_files
2336
2337      ENDDO ! iff=1,nfiles
Note: See TracBrowser for help on using the repository browser.