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

Last change on this file since 1530 was 1518, checked in by idelkadi, 13 years ago

Modifications des routines de convection :

  • correction de bug : le champ sigd n'etait pas decompresse avant d'etre sorti de la convection.
  • sortir de nouveaux champs de convection (plcl, plfc, wb)
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 54.5 KB
RevLine 
[907]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 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[1146]10       IF (o_phis%flag(iff)<=lev_files(iff)) THEN
[907]11         CALL histwrite_phy(nid_files(iff),
[1146]12     $                      o_phis%name,itau_w,pphis)
[907]13       ENDIF
14
[1146]15       IF (o_aire%flag(iff)<=lev_files(iff)) THEN
16       CALL histwrite_phy(nid_files(iff),o_aire%name,itau_w,airephy)
[907]17       ENDIF
18
[1146]19       IF (o_contfracATM%flag(iff)<=lev_files(iff)) THEN
[907]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),
[1146]24     $             o_contfracATM%name,itau_w,zx_tmp_fi2d)
[907]25       ENDIF
26
[1146]27       IF (o_contfracOR%flag(iff)<=lev_files(iff)) THEN
28      CALL histwrite_phy(nid_files(iff),o_contfracOR%name,itau_w,
[996]29     $                   pctsrf(:,is_ter))
[907]30       ENDIF
31
[1146]32       IF (o_aireTER%flag(iff)<=lev_files(iff)) THEN
[907]33      CALL histwrite_phy(nid_files(iff),
[1146]34     $                  o_aireTER%name,itau_w,paire_ter)
[907]35       ENDIF
36
37!!! Champs 2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
38
[1146]39       IF (o_flat%flag(iff)<=lev_files(iff)) THEN
40      CALL histwrite_phy(nid_files(iff),o_flat%name,itau_w,zxfluxlat)
[907]41       ENDIF
42
[1146]43       IF (o_slp%flag(iff)<=lev_files(iff)) THEN
44      CALL histwrite_phy(nid_files(iff),o_slp%name,itau_w,slp)
[907]45       ENDIF
46
[1146]47       IF (o_tsol%flag(iff)<=lev_files(iff)) THEN
48      CALL histwrite_phy(nid_files(iff),o_tsol%name,itau_w,zxtsol)
[907]49       ENDIF
50
[1146]51       IF (o_t2m%flag(iff)<=lev_files(iff)) THEN
52      CALL histwrite_phy(nid_files(iff),o_t2m%name,itau_w,zt2m)
[907]53       ENDIF
54
[1146]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)
[907]57       ENDIF
58
[1146]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)
[907]61       ENDIF
62
[1146]63       IF (o_wind10m%flag(iff)<=lev_files(iff)) THEN
[907]64      DO i=1, klon
65       zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
66      ENDDO
[1146]67      CALL histwrite_phy(nid_files(iff),
68     s                  o_wind10m%name,itau_w,zx_tmp_fi2d)
[907]69       ENDIF
70
[1146]71       IF (o_wind10max%flag(iff)<=lev_files(iff)) THEN
[907]72      DO i=1, klon
73       zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
74      ENDDO
[1146]75      CALL histwrite_phy(nid_files(iff),o_wind10max%name, 
[907]76     $                   itau_w,zx_tmp_fi2d)
77       ENDIF
78
[1146]79       IF (o_sicf%flag(iff)<=lev_files(iff)) THEN
[907]80      DO i = 1, klon
81         zx_tmp_fi2d(i) = pctsrf(i,is_sic)
82      ENDDO
[1146]83      CALL histwrite_phy(nid_files(iff),
84     $                   o_sicf%name,itau_w,zx_tmp_fi2d)
[907]85       ENDIF
86
[1146]87       IF (o_q2m%flag(iff)<=lev_files(iff)) THEN
88      CALL histwrite_phy(nid_files(iff),o_q2m%name,itau_w,zq2m)
[907]89       ENDIF
90
[1146]91       IF (o_u10m%flag(iff)<=lev_files(iff)) THEN
92      CALL histwrite_phy(nid_files(iff),o_u10m%name,itau_w,zu10m)
[907]93       ENDIF
94
[1146]95       IF (o_v10m%flag(iff)<=lev_files(iff)) THEN
96      CALL histwrite_phy(nid_files(iff),o_v10m%name,itau_w,zv10m)
[907]97       ENDIF
98
[1146]99       IF (o_psol%flag(iff)<=lev_files(iff)) THEN
[907]100      DO i = 1, klon
101         zx_tmp_fi2d(i) = paprs(i,1)
102      ENDDO
[1146]103      CALL histwrite_phy(nid_files(iff),
104     s                   o_psol%name,itau_w,zx_tmp_fi2d)
[907]105       ENDIF
106
[1492]107       IF (o_mass%flag(iff)<=lev_files(iff)) THEN
108      CALL histwrite_phy(nid_files(iff),o_mass%name,itau_w,zmasse)
109        ENDIF
110
111
[1146]112       IF (o_qsurf%flag(iff)<=lev_files(iff)) THEN
113      CALL histwrite_phy(nid_files(iff),o_qsurf%name,itau_w,zxqsurf)
[907]114       ENDIF
115
116       if (.not. ok_veget) then
[1146]117         IF (o_qsol%flag(iff)<=lev_files(iff)) THEN
118        CALL histwrite_phy(nid_files(iff),o_qsol%name,itau_w,qsol)
[907]119         ENDIF
120       endif
121
[1146]122      IF (o_precip%flag(iff)<=lev_files(iff)) THEN
[907]123       DO i = 1, klon
124         zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
125       ENDDO
[1146]126      CALL histwrite_phy(nid_files(iff),o_precip%name,
127     s                   itau_w,zx_tmp_fi2d)
[907]128      ENDIF
129
[1146]130       IF (o_ndayrain%flag(iff)<=lev_files(iff)) THEN
131      CALL histwrite_phy(nid_files(iff),o_ndayrain%name,
132     s                   itau_w,nday_rain)
[907]133       ENDIF
134
[1146]135      IF (o_plul%flag(iff)<=lev_files(iff)) THEN
[907]136       DO i = 1, klon
137         zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i)
138       ENDDO
[1146]139      CALL histwrite_phy(nid_files(iff),o_plul%name,itau_w,zx_tmp_fi2d)
[907]140      ENDIF
141
[1146]142      IF (o_pluc%flag(iff)<=lev_files(iff)) THEN
[907]143      DO i = 1, klon
144         zx_tmp_fi2d(i) = rain_con(i) + snow_con(i)
145      ENDDO
[1146]146      CALL histwrite_phy(nid_files(iff),o_pluc%name,itau_w,zx_tmp_fi2d)
[907]147      ENDIF
148
[1146]149       IF (o_snow%flag(iff)<=lev_files(iff)) THEN
150      CALL histwrite_phy(nid_files(iff),o_snow%name,itau_w,snow_fall)
[907]151       ENDIF
152
[1334]153       IF (o_msnow%flag(iff)<=lev_files(iff)) THEN
154      CALL histwrite_phy(nid_files(iff),o_msnow%name,itau_w,snow_o)
155       ENDIF
156
157       IF (o_fsnow%flag(iff)<=lev_files(iff)) THEN
158      CALL histwrite_phy(nid_files(iff),o_fsnow%name,itau_w,zfra_o)
159       ENDIF
160
[1146]161       IF (o_evap%flag(iff)<=lev_files(iff)) THEN
162      CALL histwrite_phy(nid_files(iff),o_evap%name,itau_w,evap)
[907]163       ENDIF
164
[1146]165       IF (o_tops%flag(iff)<=lev_files(iff)) THEN
166      CALL histwrite_phy(nid_files(iff),o_tops%name,itau_w,topsw)
[907]167       ENDIF
168
[1146]169       IF (o_tops0%flag(iff)<=lev_files(iff)) THEN
170      CALL histwrite_phy(nid_files(iff),o_tops0%name,itau_w,topsw0)
[907]171       ENDIF
172
[1146]173       IF (o_topl%flag(iff)<=lev_files(iff)) THEN
174      CALL histwrite_phy(nid_files(iff),o_topl%name,itau_w,toplw)
[907]175       ENDIF
176
[1146]177       IF (o_topl0%flag(iff)<=lev_files(iff)) THEN
178      CALL histwrite_phy(nid_files(iff),o_topl0%name,itau_w,toplw0)
[907]179       ENDIF
180
[1146]181       IF (o_SWupTOA%flag(iff)<=lev_files(iff)) THEN
[907]182      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 )
[1146]183      CALL histwrite_phy(nid_files(iff),o_SWupTOA%name,
184     s                     itau_w,zx_tmp_fi2d)
[907]185       ENDIF
186
[1146]187       IF (o_SWupTOAclr%flag(iff)<=lev_files(iff)) THEN
[907]188      zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, klevp1 )
189      CALL histwrite_phy(nid_files(iff), 
[1146]190     $                  o_SWupTOAclr%name,itau_w,zx_tmp_fi2d)
[907]191       ENDIF
192
[1146]193       IF (o_SWdnTOA%flag(iff)<=lev_files(iff)) THEN
[907]194      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 )
[1146]195      CALL histwrite_phy(nid_files(iff),
196     s                  o_SWdnTOA%name,itau_w,zx_tmp_fi2d)
[907]197       ENDIF
198
[1146]199       IF (o_SWdnTOAclr%flag(iff)<=lev_files(iff)) THEN
[907]200      zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, klevp1 )
201      CALL histwrite_phy(nid_files(iff), 
[1146]202     $                  o_SWdnTOAclr%name,itau_w,zx_tmp_fi2d)
[907]203       ENDIF
204
[1334]205       IF (o_nettop%flag(iff)<=lev_files(iff)) THEN
206      zx_tmp_fi2d(:) = topsw(:)-toplw(:)
207      CALL histwrite_phy(nid_files(iff),
208     $                  o_nettop%name,itau_w,zx_tmp_fi2d)
209       ENDIF
210
[1146]211       IF (o_SWup200%flag(iff)<=lev_files(iff)) THEN
212      CALL histwrite_phy(nid_files(iff),o_SWup200%name,itau_w,SWup200)
[907]213       ENDIF
214
[1146]215       IF (o_SWup200clr%flag(iff)<=lev_files(iff)) THEN
216      CALL histwrite_phy(nid_files(iff),
217     s                   o_SWup200clr%name,itau_w,SWup200clr)
[907]218       ENDIF
219
[1146]220       IF (o_SWdn200%flag(iff)<=lev_files(iff)) THEN
221      CALL histwrite_phy(nid_files(iff),o_SWdn200%name,itau_w,SWdn200)
[907]222       ENDIF
223
[1146]224       IF (o_SWdn200clr%flag(iff)<=lev_files(iff)) THEN
225      CALL histwrite_phy(nid_files(iff),
226     s                o_SWdn200clr%name,itau_w,SWdn200clr)
[907]227       ENDIF
228
[1146]229       IF (o_LWup200%flag(iff)<=lev_files(iff)) THEN
230      CALL histwrite_phy(nid_files(iff),o_LWup200%name,itau_w,LWup200)
[907]231       ENDIF
232
[1146]233       IF (o_LWup200clr%flag(iff)<=lev_files(iff)) THEN
234      CALL histwrite_phy(nid_files(iff),
235     s                   o_LWup200clr%name,itau_w,LWup200clr)
[907]236       ENDIF
237
[1146]238       IF (o_LWdn200%flag(iff)<=lev_files(iff)) THEN
239      CALL histwrite_phy(nid_files(iff),
[1279]240     s                   o_LWdn200%name,itau_w,LWdn200)
[907]241       ENDIF
242
[1146]243       IF (o_LWdn200clr%flag(iff)<=lev_files(iff)) THEN
244      CALL histwrite_phy(nid_files(iff),
[1279]245     s                  o_LWdn200clr%name,itau_w,LWdn200clr)
[907]246       ENDIF
247
[1146]248       IF (o_sols%flag(iff)<=lev_files(iff)) THEN
249      CALL histwrite_phy(nid_files(iff),o_sols%name,itau_w,solsw)
[907]250       ENDIF
251
[1146]252       IF (o_sols0%flag(iff)<=lev_files(iff)) THEN
253      CALL histwrite_phy(nid_files(iff),o_sols0%name,itau_w,solsw0)
[907]254       ENDIF
255
[1146]256       IF (o_soll%flag(iff)<=lev_files(iff)) THEN
257      CALL histwrite_phy(nid_files(iff),o_soll%name,itau_w,sollw)
[907]258       ENDIF
259
[1146]260       IF (o_radsol%flag(iff)<=lev_files(iff)) THEN
261      CALL histwrite_phy(nid_files(iff),o_radsol%name,itau_w,radsol)
[907]262       ENDIF
263
[1146]264       IF (o_soll0%flag(iff)<=lev_files(iff)) THEN
265      CALL histwrite_phy(nid_files(iff),o_soll0%name,itau_w,sollw0)
[907]266       ENDIF
267
[1146]268       IF (o_SWupSFC%flag(iff)<=lev_files(iff)) THEN
[907]269      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 )
[1146]270      CALL histwrite_phy(nid_files(iff),
271     s               o_SWupSFC%name,itau_w,zx_tmp_fi2d)
[907]272       ENDIF
273
[1146]274       IF (o_SWupSFCclr%flag(iff)<=lev_files(iff)) THEN
[907]275      zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 1 )
276      CALL histwrite_phy(nid_files(iff), 
[1146]277     $                   o_SWupSFCclr%name,itau_w,zx_tmp_fi2d)
[907]278       ENDIF
279
[1146]280       IF (o_SWdnSFC%flag(iff)<=lev_files(iff)) THEN
[907]281      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 )
282      CALL histwrite_phy(nid_files(iff), 
[1146]283     $                   o_SWdnSFC%name,itau_w,zx_tmp_fi2d)
[907]284       ENDIF
285
[1146]286       IF (o_SWdnSFCclr%flag(iff)<=lev_files(iff)) THEN
[907]287      zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 1 )
288      CALL histwrite_phy(nid_files(iff), 
[1146]289     $                  o_SWdnSFCclr%name,itau_w,zx_tmp_fi2d)
[907]290       ENDIF
291
[1146]292       IF (o_LWupSFC%flag(iff)<=lev_files(iff)) THEN
[907]293      zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon)
294      CALL histwrite_phy(nid_files(iff),
[1146]295     $                    o_LWupSFC%name,itau_w,zx_tmp_fi2d)
[907]296       ENDIF
297
[1146]298       IF (o_LWdnSFC%flag(iff)<=lev_files(iff)) THEN
[907]299      CALL histwrite_phy(nid_files(iff),
[1146]300     $                   o_LWdnSFC%name,itau_w,sollwdown)
[907]301       ENDIF
302
[958]303       sollwdownclr(1:klon) = -1.*lwdn0(1:klon,1)
[1146]304       IF (o_LWupSFCclr%flag(iff)<=lev_files(iff)) THEN
[907]305      zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon)
306      CALL histwrite_phy(nid_files(iff),
[1146]307     $                   o_LWupSFCclr%name,itau_w,zx_tmp_fi2d)
[907]308       ENDIF
309
[1146]310       IF (o_LWdnSFCclr%flag(iff)<=lev_files(iff)) THEN
[907]311      CALL histwrite_phy(nid_files(iff),
[1146]312     $                   o_LWdnSFCclr%name,itau_w,sollwdownclr)
[907]313       ENDIF
314
[1146]315       IF (o_bils%flag(iff)<=lev_files(iff)) THEN
316      CALL histwrite_phy(nid_files(iff),o_bils%name,itau_w,bils)
[907]317       ENDIF
318
[1146]319       IF (o_sens%flag(iff)<=lev_files(iff)) THEN
[907]320      zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
[1146]321      CALL histwrite_phy(nid_files(iff),o_sens%name,itau_w,zx_tmp_fi2d)
[907]322       ENDIF
323
[1146]324       IF (o_fder%flag(iff)<=lev_files(iff)) THEN
325      CALL histwrite_phy(nid_files(iff),o_fder%name,itau_w,fder)
[907]326       ENDIF
327
[1146]328       IF (o_ffonte%flag(iff)<=lev_files(iff)) THEN
329       CALL histwrite_phy(nid_files(iff),o_ffonte%name,itau_w,zxffonte)
[907]330       ENDIF
331
[1146]332       IF (o_fqcalving%flag(iff)<=lev_files(iff)) THEN
[907]333       CALL histwrite_phy(nid_files(iff),
[1146]334     $                    o_fqcalving%name,itau_w,zxfqcalving)
[907]335       ENDIF
336
[1146]337       IF (o_fqfonte%flag(iff)<=lev_files(iff)) THEN
[907]338       CALL histwrite_phy(nid_files(iff),
[1146]339     $                   o_fqfonte%name,itau_w,zxfqfonte)
[907]340       ENDIF
341
[1334]342       IF (o_taux%flag(iff)<=lev_files(iff)) THEN
343         zx_tmp_fi2d=0.
344         do nsrf=1,nbsrf
345          zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxu(:,1,nsrf)
346         enddo
347         CALL histwrite_phy(nid_files(iff),
348     $                   o_taux%name,itau_w,zx_tmp_fi2d)
349       ENDIF
350
351       IF (o_tauy%flag(iff)<=lev_files(iff)) THEN
352         zx_tmp_fi2d=0.
353         do nsrf=1,nbsrf
354          zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxv(:,1,nsrf)
355         enddo
356         CALL histwrite_phy(nid_files(iff),
357     $                   o_tauy%name,itau_w,zx_tmp_fi2d)
358       ENDIF
359
[907]360         DO nsrf = 1, nbsrf
[1146]361!           IF(nsrf.GE.2) THEN
362            IF (o_pourc_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]363            zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
364            CALL histwrite_phy(nid_files(iff),
[1146]365     $                     o_pourc_srf(nsrf)%name,itau_w,
[907]366     $                     zx_tmp_fi2d)
367            ENDIF
368
[1146]369          IF (o_fract_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]370          zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
371          CALL histwrite_phy(nid_files(iff),
[1146]372     $                  o_fract_srf(nsrf)%name,itau_w,
373     $                  zx_tmp_fi2d)
[907]374          ENDIF
[1146]375!         ENDIF !nsrf.GT.2
[907]376
[1146]377        IF (o_taux_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]378        zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
379        CALL histwrite_phy(nid_files(iff),
[1146]380     $                     o_taux_srf(nsrf)%name,itau_w,
381     $                     zx_tmp_fi2d)
[907]382        ENDIF
383
[1146]384        IF (o_tauy_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN           
[907]385        zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
386        CALL histwrite_phy(nid_files(iff),
[1146]387     $                    o_tauy_srf(nsrf)%name,itau_w,
388     $                    zx_tmp_fi2d)
[907]389        ENDIF
390
[1146]391        IF (o_tsol_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]392        zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
393        CALL histwrite_phy(nid_files(iff),
[1146]394     $                   o_tsol_srf(nsrf)%name,itau_w,
[907]395     $      zx_tmp_fi2d)
396        ENDIF
397
[1146]398      IF (o_u10m_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]399      zx_tmp_fi2d(1 : klon) = u10m(1 : klon, nsrf)
[1146]400      CALL histwrite_phy(nid_files(iff),o_u10m_srf(nsrf)%name,
[907]401     $                 itau_w,zx_tmp_fi2d)
402      ENDIF
403
[1146]404      IF (o_v10m_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]405      zx_tmp_fi2d(1 : klon) = v10m(1 : klon, nsrf)
[1146]406      CALL histwrite_phy(nid_files(iff),o_v10m_srf(nsrf)%name,
[907]407     $              itau_w,zx_tmp_fi2d)
408      ENDIF
409 
[1146]410      IF (o_t2m_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]411      zx_tmp_fi2d(1 : klon) = t2m(1 : klon, nsrf)
[1146]412      CALL histwrite_phy(nid_files(iff),o_t2m_srf(nsrf)%name,
[907]413     $           itau_w,zx_tmp_fi2d)
414      ENDIF
415
[1334]416      IF (o_evap_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
417      zx_tmp_fi2d(1 : klon) = fevap(1 : klon, nsrf)
418      CALL histwrite_phy(nid_files(iff),o_evap_srf(nsrf)%name,
419     $           itau_w,zx_tmp_fi2d)
420      ENDIF
421
[1146]422       IF (o_sens_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]423       zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
424       CALL histwrite_phy(nid_files(iff),
[1146]425     $                    o_sens_srf(nsrf)%name,itau_w,
[907]426     $      zx_tmp_fi2d)
427       ENDIF
428
[1146]429        IF (o_lat_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]430        zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
431        CALL histwrite_phy(nid_files(iff),
[1146]432     $                 o_lat_srf(nsrf)%name,itau_w,
[907]433     $                                   zx_tmp_fi2d)
434          ENDIF
435
[1146]436        IF (o_flw_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]437        zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf)
438        CALL histwrite_phy(nid_files(iff),
[1146]439     $                     o_flw_srf(nsrf)%name,itau_w,
[907]440     $      zx_tmp_fi2d)
441        ENDIF
442
[1146]443        IF (o_fsw_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]444        zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf)
445        CALL histwrite_phy(nid_files(iff),
[1146]446     $                   o_fsw_srf(nsrf)%name,itau_w,
[907]447     $      zx_tmp_fi2d)
448        ENDIF
449
[1146]450        IF (o_wbils_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]451        zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf)
452        CALL histwrite_phy(nid_files(iff),
[1146]453     $                   o_wbils_srf(nsrf)%name,itau_w,
[907]454     $      zx_tmp_fi2d)
455        ENDIF
456
[1146]457        IF (o_wbilo_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]458        zx_tmp_fi2d(1 : klon) = wfbilo( 1 : klon, nsrf)
459        CALL histwrite_phy(nid_files(iff),
[1146]460     $                    o_wbilo_srf(nsrf)%name,itau_w,
[907]461     $      zx_tmp_fi2d)
462        ENDIF
463
464       if (iflag_pbl>1 .and. lev_histday.gt.10 ) then
[1146]465        IF (o_tke_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]466        CALL histwrite_phy(nid_files(iff),
[1146]467     $                   o_tke_srf(nsrf)%name,itau_w,
468     $                    pbl_tke(:,1:klev,nsrf))
[907]469       ENDIF
470
[1146]471        IF (o_tke_max_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]472        CALL histwrite_phy(nid_files(iff),
[1146]473     $                    o_tke_max_srf(nsrf)%name,itau_w,
[907]474     $      pbl_tke(:,1:klev,nsrf))
475        ENDIF
476       endif
477      ENDDO
478
[1146]479        IF (o_cdrm%flag(iff)<=lev_files(iff)) THEN
480      CALL histwrite_phy(nid_files(iff),o_cdrm%name,itau_w,cdragm)
[907]481        ENDIF
482
[1146]483        IF (o_cdrh%flag(iff)<=lev_files(iff)) THEN
484      CALL histwrite_phy(nid_files(iff),o_cdrh%name,itau_w,cdragh)
[907]485        ENDIF
486
[1146]487        IF (o_cldl%flag(iff)<=lev_files(iff)) THEN
488      CALL histwrite_phy(nid_files(iff),o_cldl%name,itau_w,cldl)
[907]489        ENDIF
490
[1146]491        IF (o_cldm%flag(iff)<=lev_files(iff)) THEN
492      CALL histwrite_phy(nid_files(iff),o_cldm%name,itau_w,cldm)
[907]493        ENDIF
494
[1146]495        IF (o_cldh%flag(iff)<=lev_files(iff)) THEN
496      CALL histwrite_phy(nid_files(iff),o_cldh%name,itau_w,cldh)
[907]497        ENDIF
498
[1146]499        IF (o_cldt%flag(iff)<=lev_files(iff)) THEN
500      CALL histwrite_phy(nid_files(iff),o_cldt%name, 
[1285]501     &                   itau_w,cldt)
[907]502        ENDIF
503
[1146]504        IF (o_cldq%flag(iff)<=lev_files(iff)) THEN
505      CALL histwrite_phy(nid_files(iff),o_cldq%name,itau_w,cldq)
[907]506        ENDIF
507
[1146]508        IF (o_lwp%flag(iff)<=lev_files(iff)) THEN
[907]509      zx_tmp_fi2d(1:klon) = flwp(1:klon)
[1146]510      CALL histwrite_phy(nid_files(iff),
511     s                   o_lwp%name,itau_w,zx_tmp_fi2d)
[907]512        ENDIF
513
[1146]514        IF (o_iwp%flag(iff)<=lev_files(iff)) THEN
[907]515      zx_tmp_fi2d(1:klon) = fiwp(1:klon)
[1146]516      CALL histwrite_phy(nid_files(iff),
517     s                    o_iwp%name,itau_w,zx_tmp_fi2d)
[907]518        ENDIF
519
[1146]520        IF (o_ue%flag(iff)<=lev_files(iff)) THEN
521      CALL histwrite_phy(nid_files(iff),o_ue%name,itau_w,ue)
[907]522        ENDIF
523
[1146]524        IF (o_ve%flag(iff)<=lev_files(iff)) THEN
525      CALL histwrite_phy(nid_files(iff),o_ve%name,itau_w,ve)
[907]526        ENDIF
527
[1146]528        IF (o_uq%flag(iff)<=lev_files(iff)) THEN
529      CALL histwrite_phy(nid_files(iff),o_uq%name,itau_w,uq)
[907]530        ENDIF
531
[1146]532        IF (o_vq%flag(iff)<=lev_files(iff)) THEN
533      CALL histwrite_phy(nid_files(iff),o_vq%name,itau_w,vq)
[907]534        ENDIF
535
536      IF(iflag_con.GE.3) THEN ! sb
[1146]537        IF (o_cape%flag(iff)<=lev_files(iff)) THEN
538      CALL histwrite_phy(nid_files(iff),o_cape%name,itau_w,cape)
[907]539        ENDIF
540
[1146]541        IF (o_pbase%flag(iff)<=lev_files(iff)) THEN
[1334]542      CALL histwrite_phy(nid_files(iff),o_pbase%name,itau_w,ema_pcb)
[907]543        ENDIF
544
[1146]545        IF (o_ptop%flag(iff)<=lev_files(iff)) THEN
546      CALL histwrite_phy(nid_files(iff),o_ptop%name,itau_w,ema_pct)
[907]547        ENDIF
548
[1146]549        IF (o_fbase%flag(iff)<=lev_files(iff)) THEN
550      CALL histwrite_phy(nid_files(iff),o_fbase%name,itau_w,ema_cbmf)
[907]551        ENDIF
552
[1518]553        IF (o_plcl%flag(iff)<=lev_files(iff)) THEN
554      CALL histwrite_phy(nid_files(iff),o_plcl%name,itau_w,plcl)
555        ENDIF
556
557        IF (o_plfc%flag(iff)<=lev_files(iff)) THEN
558      CALL histwrite_phy(nid_files(iff),o_plfc%name,itau_w,plfc)
559        ENDIF
560
561        IF (o_wbeff%flag(iff)<=lev_files(iff)) THEN
562      CALL histwrite_phy(nid_files(iff),o_wbeff%name,itau_w,wbeff)
563        ENDIF
564
565
[1146]566        IF (o_prw%flag(iff)<=lev_files(iff)) THEN
567      CALL histwrite_phy(nid_files(iff),o_prw%name,itau_w,prw)
[907]568        ENDIF
[1100]569
[1146]570      IF (o_cape_max%flag(iff)<=lev_files(iff)) THEN
571      CALL histwrite_phy(nid_files(iff),o_cape_max%name,itau_w,cape)
[1100]572      ENDIF
573
[1146]574       IF (o_upwd%flag(iff)<=lev_files(iff)) THEN
575      CALL histwrite_phy(nid_files(iff),o_upwd%name,itau_w,upwd)
576       ENDIF
577
578       IF (o_Ma%flag(iff)<=lev_files(iff)) THEN
579      CALL histwrite_phy(nid_files(iff),o_Ma%name,itau_w,Ma)
580       ENDIF
581
582       IF (o_dnwd%flag(iff)<=lev_files(iff)) THEN
583      CALL histwrite_phy(nid_files(iff),o_dnwd%name,itau_w,dnwd)
584       ENDIF
585
586       IF (o_dnwd0%flag(iff)<=lev_files(iff)) THEN
587      CALL histwrite_phy(nid_files(iff),o_dnwd0%name,itau_w,dnwd0)
588       ENDIF
589
[1334]590       IF (o_ftime_con%flag(iff)<=lev_files(iff)) THEN
591        zx_tmp_fi2d=float(itau_con)/float(itap)
592      CALL histwrite_phy(nid_files(iff),o_ftime_con%name,
593     s                   itau_w,zx_tmp_fi2d)
594       ENDIF
595
596       IF (o_mc%flag(iff)<=lev_files(iff)) THEN
597        if(iflag_thermals.gt.1)then
[1507]598         zx_tmp_fi3d=dnwd+dnwd0+upwd+fm_therm(:,1:klev)
[1334]599        else
600         zx_tmp_fi3d=dnwd+dnwd0+upwd
601        endif
602      CALL histwrite_phy(nid_files(iff),o_mc%name,itau_w,zx_tmp_fi3d)
603       ENDIF
604     
[907]605      ENDIF !iflag_con .GE. 3
606
[1146]607        IF (o_s_pblh%flag(iff)<=lev_files(iff)) THEN
608      CALL histwrite_phy(nid_files(iff),o_s_pblh%name,itau_w,s_pblh)
[907]609        ENDIF
610
[1146]611        IF (o_s_pblt%flag(iff)<=lev_files(iff)) THEN
612      CALL histwrite_phy(nid_files(iff),o_s_pblt%name,itau_w,s_pblt)
[907]613        ENDIF
614
[1146]615        IF (o_s_lcl%flag(iff)<=lev_files(iff)) THEN
616      CALL histwrite_phy(nid_files(iff),o_s_lcl%name,itau_w,s_lcl)
[907]617        ENDIF
618
[1398]619        IF (o_s_therm%flag(iff)<=lev_files(iff)) THEN
620      CALL histwrite_phy(nid_files(iff),o_s_therm%name,itau_w,s_therm)
[907]621        ENDIF
622
[1398]623!IM : Les champs suivants (s_capCL, s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F
624!       IF (o_s_capCL%flag(iff)<=lev_files(iff)) THEN
625!     CALL histwrite_phy(nid_files(iff),o_s_capCL%name,itau_w,s_capCL)
626!       ENDIF
[907]627
[1398]628!       IF (o_s_oliqCL%flag(iff)<=lev_files(iff)) THEN
629!     CALL histwrite_phy(nid_files(iff),o_s_oliqCL%name,itau_w,s_oliqCL)
630!       ENDIF
[907]631
[1398]632!       IF (o_s_cteiCL%flag(iff)<=lev_files(iff)) THEN
633!     CALL histwrite_phy(nid_files(iff),o_s_cteiCL%name,itau_w,s_cteiCL)
634!       ENDIF
[907]635
[1398]636!       IF (o_s_trmb1%flag(iff)<=lev_files(iff)) THEN
637!     CALL histwrite_phy(nid_files(iff),o_s_trmb1%name,itau_w,s_trmb1)
638!       ENDIF
[907]639
[1398]640!       IF (o_s_trmb2%flag(iff)<=lev_files(iff)) THEN
641!     CALL histwrite_phy(nid_files(iff),o_s_trmb2%name,itau_w,s_trmb2)
642!       ENDIF
[907]643
[1398]644!       IF (o_s_trmb3%flag(iff)<=lev_files(iff)) THEN
645!     CALL histwrite_phy(nid_files(iff),o_s_trmb3%name,itau_w,s_trmb3)
646!       ENDIF
[907]647
648! Champs interpolles sur des niveaux de pression
649
[1146]650        ll=0
[907]651        DO k=1, nlevSTD
[1279]652!         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
653!         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
654         bb2=clevSTD(k) 
[907]655         IF(bb2.EQ."850".OR.bb2.EQ."700".OR.
[1279]656     $      bb2.EQ."500".OR.bb2.EQ."200".OR.
657     $      bb2.EQ."50".OR.bb2.EQ."10") THEN
[907]658
659! a refaire correctement !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[1146]660          ll=ll+1
661       IF (o_uSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
662       CALL histwrite_phy(nid_files(iff),o_uSTDlevs(ll)%name,
663     &                    itau_w,uwriteSTD(:,k,iff))
[907]664       ENDIF
665
[1146]666       IF (o_vSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
667      CALL histwrite_phy(nid_files(iff),o_vSTDlevs(ll)%name, 
668     &                   itau_w,vwriteSTD(:,k,iff))
[907]669       ENDIF
670
[1146]671       IF (o_wSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
672      CALL histwrite_phy(nid_files(iff),o_wSTDlevs(ll)%name,
673     &                    itau_w,wwriteSTD(:,k,iff))
[907]674       ENDIF
675
[1398]676       IF (o_zSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
677      CALL histwrite_phy(nid_files(iff),o_zSTDlevs(ll)%name,
[1055]678     &               itau_w,phiwriteSTD(:,k,iff))
[907]679       ENDIF
680
[1146]681       IF (o_qSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
682      CALL histwrite_phy(nid_files(iff),o_qSTDlevs(ll)%name,
683     &                   itau_w, qwriteSTD(:,k,iff))
[907]684       ENDIF
685
[1146]686       IF (o_tSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
687      CALL histwrite_phy(nid_files(iff),o_tSTDlevs(ll)%name,
688     &                   itau_w, twriteSTD(:,k,iff))
[907]689       ENDIF
690
691       ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
692       ENDDO
693
[1146]694      IF (o_t_oce_sic%flag(iff)<=lev_files(iff)) THEN
[907]695      DO i=1, klon
696       IF (pctsrf(i,is_oce).GT.epsfra.OR.
697     $     pctsrf(i,is_sic).GT.epsfra) THEN
698        zx_tmp_fi2d(i) = (ftsol(i, is_oce) * pctsrf(i,is_oce)+
699     $                   ftsol(i, is_sic) * pctsrf(i,is_sic))/
700     $                   (pctsrf(i,is_oce)+pctsrf(i,is_sic))
701       ELSE
702        zx_tmp_fi2d(i) = 273.15
703       ENDIF
704      ENDDO
[1146]705      CALL histwrite_phy(nid_files(iff),
706     s                   o_t_oce_sic%name,itau_w,zx_tmp_fi2d)
[907]707      ENDIF
708
[1146]709! Couplage convection-couche limite
710      IF (iflag_con.GE.3) THEN
[1492]711      IF (iflag_coupl>=1) THEN
[1146]712       IF (o_ale_bl%flag(iff)<=lev_files(iff)) THEN
713       CALL histwrite_phy(nid_files(iff),o_ale_bl%name,itau_w,ale_bl)
[951]714       ENDIF
[1146]715       IF (o_alp_bl%flag(iff)<=lev_files(iff)) THEN
716       CALL histwrite_phy(nid_files(iff),o_alp_bl%name,itau_w,alp_bl)
[951]717       ENDIF
[1492]718      ENDIF !iflag_coupl>=1
[1146]719      ENDIF !(iflag_con.GE.3)
[951]720
[1146]721! Wakes
722      IF (iflag_con.EQ.3) THEN
[1507]723      IF (iflag_wake>=1) THEN
[1146]724       IF (o_ale_wk%flag(iff)<=lev_files(iff)) THEN
725       CALL histwrite_phy(nid_files(iff),o_ale_wk%name,itau_w,ale_wake)
[951]726       ENDIF
[1146]727       IF (o_alp_wk%flag(iff)<=lev_files(iff)) THEN
728       CALL histwrite_phy(nid_files(iff),o_alp_wk%name,itau_w,alp_wake)
[951]729       ENDIF
[973]730
[1146]731       IF (o_ale%flag(iff)<=lev_files(iff)) THEN
732       CALL histwrite_phy(nid_files(iff),o_ale%name,itau_w,ale)
[973]733       ENDIF
[1146]734       IF (o_alp%flag(iff)<=lev_files(iff)) THEN
735       CALL histwrite_phy(nid_files(iff),o_alp%name,itau_w,alp)
[1063]736       ENDIF
[1146]737       IF (o_cin%flag(iff)<=lev_files(iff)) THEN
738       CALL histwrite_phy(nid_files(iff),o_cin%name,itau_w,cin)
739       ENDIF
740       IF (o_wape%flag(iff)<=lev_files(iff)) THEN
741       CALL histwrite_phy(nid_files(iff),o_WAPE%name,itau_w,wake_pe)
742       ENDIF
743       IF (o_wake_h%flag(iff)<=lev_files(iff)) THEN
744      CALL histwrite_phy(nid_files(iff),o_wake_h%name,itau_w,wake_h)
745       ENDIF
[1063]746
[1146]747       IF (o_wake_s%flag(iff)<=lev_files(iff)) THEN
748      CALL histwrite_phy(nid_files(iff),o_wake_s%name,itau_w,wake_s)
[1063]749       ENDIF
750
[1146]751        IF (o_wake_deltat%flag(iff)<=lev_files(iff)) THEN
752       CALL histwrite_phy(nid_files(iff),o_wake_deltat%name,
[1063]753     $                     itau_w,wake_deltat)
754        ENDIF
755
[1146]756        IF (o_wake_deltaq%flag(iff)<=lev_files(iff)) THEN
757       CALL histwrite_phy(nid_files(iff),o_wake_deltaq%name,
[1063]758     $                    itau_w,wake_deltaq)
759        ENDIF
760
[1146]761        IF (o_wake_omg%flag(iff)<=lev_files(iff)) THEN
762       CALL histwrite_phy(nid_files(iff),
763     s                    o_wake_omg%name,itau_w,wake_omg)
[1063]764        ENDIF
[1146]765
766         IF (o_dtwak%flag(iff)<=lev_files(iff)) THEN
767           zx_tmp_fi3d(1:klon,1:klev)=d_t_wake(1:klon,1:klev)
[1100]768     &                                        /pdtphys
[1146]769           CALL histwrite_phy(nid_files(iff),
770     &                       o_dtwak%name,itau_w,zx_tmp_fi3d)
771         ENDIF
772
773        IF (o_dqwak%flag(iff)<=lev_files(iff)) THEN
774        zx_tmp_fi3d(1:klon,1:klev)=d_q_wake(1:klon,1:klev)/pdtphys
775        CALL histwrite_phy(nid_files(iff),
776     &                     o_dqwak%name,itau_w,zx_tmp_fi3d)
[1100]777        ENDIF
[1507]778      ENDIF ! iflag_wake>=1
[1063]779
[1146]780        IF (o_Vprecip%flag(iff)<=lev_files(iff)) THEN
781       CALL histwrite_phy(nid_files(iff),o_Vprecip%name,itau_w,Vprecip)
[1063]782        ENDIF
783
[1146]784        IF (o_ftd%flag(iff)<=lev_files(iff)) THEN
785       CALL histwrite_phy(nid_files(iff),o_ftd%name,itau_w,ftd)
[1063]786        ENDIF
787
[1146]788        IF (o_fqd%flag(iff)<=lev_files(iff)) THEN
789       CALL histwrite_phy(nid_files(iff),o_fqd%name,itau_w,fqd)
[1063]790        ENDIF
[1100]791      ENDIF !(iflag_con.EQ.3) 
[996]792 
[1146]793      IF (type_ocean=='slab ') THEN
794      IF ( o_slab_bils%flag(iff)<=lev_files(iff)) 
[996]795     $     CALL histwrite_phy(
[1146]796     $     nid_files(iff),o_slab_bils%name,itau_w,slab_wfbils)
[907]797
[996]798      ENDIF !type_ocean == force/slab
[907]799
[1146]800      IF (o_weakinv%flag(iff)<=lev_files(iff)) THEN
801      CALL histwrite_phy(nid_files(iff),
802     s                  o_weakinv%name,itau_w,weak_inversion)
[907]803      ENDIF
804
[1146]805      IF (o_dthmin%flag(iff)<=lev_files(iff)) THEN
806      CALL histwrite_phy(nid_files(iff),o_dthmin%name,itau_w,dthmin)
[907]807      ENDIF
808
[1146]809       IF (o_cldtau%flag(iff)<=lev_files(iff)) THEN
810       CALL histwrite_phy(nid_files(iff),o_cldtau%name,itau_w,cldtau)
[907]811       ENDIF
812
[1146]813       IF (o_cldemi%flag(iff)<=lev_files(iff)) THEN
814       CALL histwrite_phy(nid_files(iff),o_cldemi%name,itau_w,cldemi)
[907]815       ENDIF
816
[1279]817      IF (o_pr_con_l%flag(iff)<=lev_files(iff)) THEN
818      CALL histwrite_phy(nid_files(iff),
819     s         o_pr_con_l%name,itau_w,pmflxr(:,1:klev))
820      ENDIF
[929]821
[1279]822      IF (o_pr_con_i%flag(iff)<=lev_files(iff)) THEN
823      CALL histwrite_phy(nid_files(iff),
824     s         o_pr_con_i%name,itau_w,pmflxs(:,1:klev))
825      ENDIF
[929]826
[1279]827      IF (o_pr_lsc_l%flag(iff)<=lev_files(iff)) THEN
828      CALL histwrite_phy(nid_files(iff),
829     s        o_pr_lsc_l%name,itau_w,prfl(:,1:klev))
830      ENDIF
[929]831
[1279]832      IF (o_pr_lsc_i%flag(iff)<=lev_files(iff)) THEN
833      CALL histwrite_phy(nid_files(iff),
834     s        o_pr_lsc_i%name,itau_w,psfl(:,1:klev))
835      ENDIF
[929]836
[1284]837      IF (o_re%flag(iff)<=lev_files(iff)) THEN
838      CALL histwrite_phy(nid_files(iff),o_re%name,itau_w,re)
839      ENDIF
[1279]840
[1284]841      IF (o_fl%flag(iff)<=lev_files(iff)) THEN
842      CALL histwrite_phy(nid_files(iff),o_fl%name,itau_w,fl)
843      ENDIF
844
845
846
[1146]847      IF (o_rh2m%flag(iff)<=lev_files(iff)) THEN
[907]848      DO i=1, klon
849       zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
850      ENDDO
[1146]851      CALL histwrite_phy(nid_files(iff),o_rh2m%name,itau_w,zx_tmp_fi2d)
[907]852      ENDIF
853
[1334]854      IF (o_rh2m_min%flag(iff)<=lev_files(iff)) THEN
855      DO i=1, klon
856       zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
857      ENDDO
858      CALL histwrite_phy(nid_files(iff),o_rh2m_min%name,
859     s               itau_w,zx_tmp_fi2d)
860      ENDIF
861
862      IF (o_rh2m_max%flag(iff)<=lev_files(iff)) THEN
863      DO i=1, klon
864       zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
865      ENDDO
866      CALL histwrite_phy(nid_files(iff),o_rh2m_max%name,
867     s              itau_w,zx_tmp_fi2d)
868      ENDIF
869
870
[1146]871      IF (o_qsat2m%flag(iff)<=lev_files(iff)) THEN
872      CALL histwrite_phy(nid_files(iff),o_qsat2m%name,itau_w,qsat2m)
[907]873      ENDIF
874
[1146]875      IF (o_tpot%flag(iff)<=lev_files(iff)) THEN
876      CALL histwrite_phy(nid_files(iff),o_tpot%name,itau_w,tpot)
[907]877      ENDIF
878
[1146]879       IF (o_tpote%flag(iff)<=lev_files(iff)) THEN
880      CALL histwrite_phy(nid_files(iff),o_tpote%name,itau_w,tpote)
[907]881       ENDIF
882
[1146]883      IF (o_SWnetOR%flag(iff)<=lev_files(iff)) THEN
[907]884      zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, is_ter)
[1146]885      CALL histwrite_phy(nid_files(iff),
886     s                   o_SWnetOR%name,itau_w, zx_tmp_fi2d)
[907]887      ENDIF
888
[1146]889      IF (o_SWdownOR%flag(iff)<=lev_files(iff)) THEN
[907]890      zx_tmp_fi2d(1:klon) = solsw(1:klon)/(1.-albsol1(1:klon))
[1146]891      CALL histwrite_phy(nid_files(iff),
892     s                   o_SWdownOR%name,itau_w, zx_tmp_fi2d)
[907]893      ENDIF
894
[1146]895      IF (o_LWdownOR%flag(iff)<=lev_files(iff)) THEN
896      CALL histwrite_phy(nid_files(iff),
897     s                  o_LWdownOR%name,itau_w,sollwdown)
[907]898      ENDIF
899
[1146]900      IF (o_snowl%flag(iff)<=lev_files(iff)) THEN
901      CALL histwrite_phy(nid_files(iff),o_snowl%name,itau_w,snow_lsc)
[907]902      ENDIF
903
[1146]904      IF (o_solldown%flag(iff)<=lev_files(iff)) THEN
905      CALL histwrite_phy(nid_files(iff),
906     s                   o_solldown%name,itau_w,sollwdown)
[907]907      ENDIF
908
[1146]909      IF (o_dtsvdfo%flag(iff)<=lev_files(iff)) THEN
910      CALL histwrite_phy(nid_files(iff),
911     s                 o_dtsvdfo%name,itau_w,d_ts(:,is_oce))
[907]912      ENDIF
913
[1146]914      IF (o_dtsvdft%flag(iff)<=lev_files(iff)) THEN
915      CALL histwrite_phy(nid_files(iff),
916     s                   o_dtsvdft%name,itau_w,d_ts(:,is_ter))
[907]917      ENDIF
918
[1146]919       IF (o_dtsvdfg%flag(iff)<=lev_files(iff)) THEN
[907]920        CALL histwrite_phy(nid_files(iff),
[1146]921     $                   o_dtsvdfg%name,itau_w, d_ts(:,is_lic))
[907]922       ENDIF
923
[1146]924       IF (o_dtsvdfi%flag(iff)<=lev_files(iff)) THEN
925      CALL histwrite_phy(nid_files(iff),
926     s                   o_dtsvdfi%name,itau_w,d_ts(:,is_sic))
[907]927       ENDIF
928
[1146]929       IF (o_rugs%flag(iff)<=lev_files(iff)) THEN
930      CALL histwrite_phy(nid_files(iff),o_rugs%name,itau_w,zxrugs)
[907]931       ENDIF
932
[1279]933! OD550 per species
934      IF (new_aod .and. (.not. aerosol_couple)) THEN
[1345]935          IF (ok_ade.OR.ok_aie) THEN
[1337]936
937          IF (o_od550aer%flag(iff)<=lev_files(iff)) THEN
938             CALL histwrite_phy(nid_files(iff),o_od550aer%name,itau_w,
939     $            od550aer)
940          ENDIF
941          IF (o_od865aer%flag(iff)<=lev_files(iff)) THEN
942             CALL histwrite_phy(nid_files(iff),o_od865aer%name,itau_w,
943     $            od865aer)
944          ENDIF
945          IF (o_absvisaer%flag(iff)<=lev_files(iff)) THEN
946             CALL histwrite_phy(nid_files(iff),o_absvisaer%name,itau_w,
947     $            absvisaer)
948          ENDIF
949          IF (o_od550lt1aer%flag(iff)<=lev_files(iff)) THEN
950            CALL histwrite_phy(nid_files(iff),o_od550lt1aer%name,itau_w,
951     $            od550lt1aer)
952          ENDIF
953
[1345]954          IF (o_sconcso4%flag(iff)<=lev_files(iff)) THEN
955              CALL histwrite_phy(nid_files(iff),o_sconcso4%name,itau_w,
956     $            sconcso4)
[1279]957          ENDIF
[1345]958          IF (o_sconcoa%flag(iff)<=lev_files(iff)) THEN
959              CALL histwrite_phy(nid_files(iff),o_sconcoa%name,itau_w,
960     $            sconcoa)
961          ENDIF
962          IF (o_sconcbc%flag(iff)<=lev_files(iff)) THEN
963              CALL histwrite_phy(nid_files(iff),o_sconcbc%name,itau_w,
964     $            sconcbc)
965          ENDIF
966          IF (o_sconcss%flag(iff)<=lev_files(iff)) THEN
967              CALL histwrite_phy(nid_files(iff),o_sconcss%name,itau_w,
968     $            sconcss)
969          ENDIF
970          IF (o_sconcdust%flag(iff)<=lev_files(iff)) THEN
971              CALL histwrite_phy(nid_files(iff),o_sconcdust%name,itau_w,
972     $            sconcdust)
973          ENDIF
974         
975          IF (o_concso4%flag(iff)<=lev_files(iff)) THEN
976              CALL histwrite_phy(nid_files(iff),o_concso4%name,itau_w,
977     $            concso4)
978          ENDIF
979          IF (o_concoa%flag(iff)<=lev_files(iff)) THEN
980              CALL histwrite_phy(nid_files(iff),o_concoa%name,itau_w,
981     $            concoa)
982          ENDIF
983          IF (o_concbc%flag(iff)<=lev_files(iff)) THEN
984              CALL histwrite_phy(nid_files(iff),o_concbc%name,itau_w,
985     $            concbc)
986          ENDIF
987          IF (o_concss%flag(iff)<=lev_files(iff)) THEN
988              CALL histwrite_phy(nid_files(iff),o_concss%name,itau_w,
989     $            concss)
990          ENDIF
991          IF (o_concdust%flag(iff)<=lev_files(iff)) THEN
992              CALL histwrite_phy(nid_files(iff),o_concdust%name,itau_w,
993     $            concdust)
994          ENDIF
995         
996          IF (o_loadso4%flag(iff)<=lev_files(iff)) THEN
997              CALL histwrite_phy(nid_files(iff),o_loadso4%name,itau_w,
998     $            loadso4)
999          ENDIF
1000          IF (o_loadoa%flag(iff)<=lev_files(iff)) THEN
1001              CALL histwrite_phy(nid_files(iff),o_loadoa%name,itau_w,
1002     $            loadoa)
1003          ENDIF
1004          IF (o_loadbc%flag(iff)<=lev_files(iff)) THEN
1005              CALL histwrite_phy(nid_files(iff),o_loadbc%name,itau_w,
1006     $            loadbc)
1007          ENDIF
1008          IF (o_loadss%flag(iff)<=lev_files(iff)) THEN
1009              CALL histwrite_phy(nid_files(iff),o_loadss%name,itau_w,
1010     $            loadss)
1011          ENDIF
1012          IF (o_loaddust%flag(iff)<=lev_files(iff)) THEN
1013              CALL histwrite_phy(nid_files(iff),o_loaddust%name,itau_w,
1014     $            loaddust)
1015          ENDIF
1016         
1017          DO naero = 1, naero_spc
1018            IF (o_tausumaero(naero)%flag(iff)<=lev_files(iff)) THEN
1019                CALL histwrite_phy(nid_files(iff),
1020     $              o_tausumaero(naero)%name,itau_w,
1021     $              tausum_aero(:,2,naero) )
1022            ENDIF
1023          END DO
1024          endif
[1279]1025      ENDIF
[1345]1026     
[1146]1027       IF (ok_ade) THEN
[1279]1028          IF (o_topswad%flag(iff)<=lev_files(iff)) THEN
1029             CALL histwrite_phy(nid_files(iff),o_topswad%name,itau_w,
1030     $            topswad_aero)
1031          ENDIF
1032          IF (o_solswad%flag(iff)<=lev_files(iff)) THEN
1033             CALL histwrite_phy(nid_files(iff),o_solswad%name,itau_w,
1034     $            solswad_aero)
1035          ENDIF
1036
1037!====MS forcing diagnostics
1038        if (new_aod) then             
1039        IF (o_swtoaas_nat%flag(iff)<=lev_files(iff)) THEN
1040        CALL histwrite_phy(nid_files(iff),o_swtoaas_nat%name,itau_w,
1041     $      topsw_aero(:,1))
[1146]1042        ENDIF
[1279]1043
1044        IF (o_swsrfas_nat%flag(iff)<=lev_files(iff)) THEN
1045        CALL histwrite_phy(nid_files(iff),o_swsrfas_nat%name,itau_w,
1046     $      solsw_aero(:,1))
[1146]1047        ENDIF
1048
[1279]1049        IF (o_swtoacs_nat%flag(iff)<=lev_files(iff)) THEN
1050        CALL histwrite_phy(nid_files(iff),o_swtoacs_nat%name,itau_w,
1051     $      topsw0_aero(:,1))
[1146]1052        ENDIF
[1279]1053
1054        IF (o_swsrfcs_nat%flag(iff)<=lev_files(iff)) THEN
1055        CALL histwrite_phy(nid_files(iff),o_swsrfcs_nat%name,itau_w,
1056     $      solsw0_aero(:,1))
[1146]1057        ENDIF
[1279]1058 
1059!ant
1060        IF (o_swtoaas_ant%flag(iff)<=lev_files(iff)) THEN
1061        CALL histwrite_phy(nid_files(iff),o_swtoaas_ant%name,itau_w,
1062     $      topsw_aero(:,2))
1063        ENDIF
1064
1065        IF (o_swsrfas_ant%flag(iff)<=lev_files(iff)) THEN
1066        CALL histwrite_phy(nid_files(iff),o_swsrfas_ant%name,itau_w,
1067     $      solsw_aero(:,2))
1068        ENDIF
1069
1070        IF (o_swtoacs_ant%flag(iff)<=lev_files(iff)) THEN
1071        CALL histwrite_phy(nid_files(iff),o_swtoacs_ant%name,itau_w,
1072     $      topsw0_aero(:,2))
1073        ENDIF
1074
1075        IF (o_swsrfcs_ant%flag(iff)<=lev_files(iff)) THEN
1076        CALL histwrite_phy(nid_files(iff),o_swsrfcs_ant%name,itau_w,
1077     $      solsw0_aero(:,2))
1078        ENDIF
1079
1080!cf
1081
1082        if (.not. aerosol_couple) then
1083        IF (o_swtoacf_nat%flag(iff)<=lev_files(iff)) THEN
1084        CALL histwrite_phy(nid_files(iff),o_swtoacf_nat%name,itau_w,
1085     $      topswcf_aero(:,1))
1086        ENDIF
1087
1088        IF (o_swsrfcf_nat%flag(iff)<=lev_files(iff)) THEN
1089        CALL histwrite_phy(nid_files(iff),o_swsrfcf_nat%name,itau_w,
1090     $      solswcf_aero(:,1))
1091        ENDIF
1092
1093        IF (o_swtoacf_ant%flag(iff)<=lev_files(iff)) THEN
1094        CALL histwrite_phy(nid_files(iff),o_swtoacf_ant%name,itau_w,
1095     $      topswcf_aero(:,2))
1096        ENDIF
1097
1098        IF (o_swsrfcf_ant%flag(iff)<=lev_files(iff)) THEN
1099        CALL histwrite_phy(nid_files(iff),o_swsrfcf_ant%name,itau_w,
1100     $      solswcf_aero(:,2))
1101        ENDIF
1102
1103        IF (o_swtoacf_zero%flag(iff)<=lev_files(iff)) THEN
1104        CALL histwrite_phy(nid_files(iff),o_swtoacf_zero%name,itau_w,
1105     $      topswcf_aero(:,3))
1106        ENDIF
1107
1108        IF (o_swsrfcf_zero%flag(iff)<=lev_files(iff)) THEN
1109        CALL histwrite_phy(nid_files(iff),o_swsrfcf_zero%name,itau_w,
1110     $      solswcf_aero(:,3))
1111        ENDIF
1112        endif
1113
1114        endif ! new_aod
1115!====MS forcing diagnostics
1116
[1146]1117       ENDIF
1118
[1279]1119       IF (ok_aie) THEN
1120          IF (o_topswai%flag(iff)<=lev_files(iff)) THEN
1121             CALL histwrite_phy(nid_files(iff),o_topswai%name,itau_w,
1122     $            topswai_aero)
1123          ENDIF
1124          IF (o_solswai%flag(iff)<=lev_files(iff)) THEN
1125             CALL histwrite_phy(nid_files(iff),o_solswai%name,itau_w,
1126     $            solswai_aero)
1127          ENDIF
[1337]1128          IF (o_scdnc%flag(iff)<=lev_files(iff)) THEN
1129             CALL histwrite_phy(nid_files(iff),o_scdnc%name,itau_w,
1130     $            scdnc)
1131          ENDIF
1132          IF (o_cldncl%flag(iff)<=lev_files(iff)) THEN
1133             CALL histwrite_phy(nid_files(iff),o_cldncl%name,itau_w,
1134     $            cldncl)
1135          ENDIF
1136          IF (o_reffclws%flag(iff)<=lev_files(iff)) THEN
1137             CALL histwrite_phy(nid_files(iff),o_reffclws%name,itau_w,
1138     $            reffclws)
1139          ENDIF
1140          IF (o_reffclwc%flag(iff)<=lev_files(iff)) THEN
1141             CALL histwrite_phy(nid_files(iff),o_reffclwc%name,itau_w,
1142     $            reffclwc)
1143          ENDIF
1144          IF (o_cldnvi%flag(iff)<=lev_files(iff)) THEN
1145             CALL histwrite_phy(nid_files(iff),o_cldnvi%name,itau_w,
1146     $            cldnvi)
1147          ENDIF
1148          IF (o_lcc%flag(iff)<=lev_files(iff)) THEN
1149             CALL histwrite_phy(nid_files(iff),o_lcc%name,itau_w,
1150     $            lcc)
1151          ENDIF
1152          IF (o_lcc3d%flag(iff)<=lev_files(iff)) THEN
1153             CALL histwrite_phy(nid_files(iff),o_lcc3d%name,itau_w,
1154     $            lcc3d)
1155          ENDIF
1156          IF (o_lcc3dcon%flag(iff)<=lev_files(iff)) THEN
1157             CALL histwrite_phy(nid_files(iff),o_lcc3dcon%name,itau_w,
1158     $            lcc3dcon)
1159          ENDIF
1160          IF (o_lcc3dstra%flag(iff)<=lev_files(iff)) THEN
1161             CALL histwrite_phy(nid_files(iff),o_lcc3dstra%name,itau_w,
1162     $            lcc3dstra)
1163          ENDIF
1164          IF (o_reffclwtop%flag(iff)<=lev_files(iff)) THEN
1165             CALL histwrite_phy(nid_files(iff),o_reffclwtop%name,itau_w,
1166     $            reffclwtop)
1167          ENDIF
[1279]1168       ENDIF
1169
[907]1170! Champs 3D:
[1364]1171       IF (ok_ade .OR. ok_aie) then
1172          IF (o_ec550aer%flag(iff)<=lev_files(iff)) THEN
[1367]1173             CALL histwrite_phy(nid_files(iff),o_ec550aer%name,itau_w,
1174     &            ec550aer)
[1364]1175          ENDIF
[1337]1176       ENDIF
1177
[1146]1178       IF (o_lwcon%flag(iff)<=lev_files(iff)) THEN
1179      CALL histwrite_phy(nid_files(iff),o_lwcon%name,itau_w,flwc)
[907]1180       ENDIF
1181
[1146]1182       IF (o_iwcon%flag(iff)<=lev_files(iff)) THEN
1183      CALL histwrite_phy(nid_files(iff),o_iwcon%name,itau_w,fiwc)
[907]1184       ENDIF
1185
[1146]1186       IF (o_temp%flag(iff)<=lev_files(iff)) THEN
1187      CALL histwrite_phy(nid_files(iff),o_temp%name,itau_w,t_seri)
[907]1188       ENDIF
1189
[1146]1190       IF (o_theta%flag(iff)<=lev_files(iff)) THEN
1191      CALL histwrite_phy(nid_files(iff),o_theta%name,itau_w,theta)
[945]1192       ENDIF
1193
[1398]1194       IF (o_ovapinit%flag(iff)<=lev_files(iff)) THEN
1195      CALL histwrite_phy(nid_files(iff),o_ovapinit%name,itau_w,
1196     $ qx(:,:,ivap))
[907]1197       ENDIF
1198
[1398]1199       IF (o_ovap%flag(iff)<=lev_files(iff)) THEN
[1146]1200      CALL histwrite_phy(nid_files(iff),
[1398]1201     $                   o_ovap%name,itau_w,q_seri)
[907]1202       ENDIF
1203
[1146]1204       IF (o_geop%flag(iff)<=lev_files(iff)) THEN
1205      CALL histwrite_phy(nid_files(iff),o_geop%name,itau_w,zphi)
[907]1206       ENDIF
1207
[1146]1208       IF (o_vitu%flag(iff)<=lev_files(iff)) THEN
1209      CALL histwrite_phy(nid_files(iff),o_vitu%name,itau_w,u_seri)
[907]1210       ENDIF
1211
[1146]1212       IF (o_vitv%flag(iff)<=lev_files(iff)) THEN
1213      CALL histwrite_phy(nid_files(iff),o_vitv%name,itau_w,v_seri)
[907]1214       ENDIF
1215
[1146]1216       IF (o_vitw%flag(iff)<=lev_files(iff)) THEN
1217      CALL histwrite_phy(nid_files(iff),o_vitw%name,itau_w,omega)
1218       ENDIF
1219
1220        IF (o_pres%flag(iff)<=lev_files(iff)) THEN
1221      CALL histwrite_phy(nid_files(iff),o_pres%name,itau_w,pplay)
[907]1222        ENDIF
1223
[1334]1224        IF (o_paprs%flag(iff)<=lev_files(iff)) THEN
1225      CALL histwrite_phy(nid_files(iff),o_paprs%name,
1226     s                    itau_w,paprs(:,1:klev))
1227        ENDIF
1228
[1146]1229       IF (o_rneb%flag(iff)<=lev_files(iff)) THEN
1230      CALL histwrite_phy(nid_files(iff),o_rneb%name,itau_w,cldfra)
[907]1231       ENDIF
1232
[1146]1233       IF (o_rnebcon%flag(iff)<=lev_files(iff)) THEN
1234      CALL histwrite_phy(nid_files(iff),o_rnebcon%name,itau_w,rnebcon)
[907]1235       ENDIF
1236
[1146]1237       IF (o_rhum%flag(iff)<=lev_files(iff)) THEN
1238      CALL histwrite_phy(nid_files(iff),o_rhum%name,itau_w,zx_rh)
[907]1239       ENDIF
1240
[1146]1241      IF (o_ozone%flag(iff)<=lev_files(iff)) THEN
[1279]1242         CALL histwrite_phy(nid_files(iff), o_ozone%name, itau_w,
1243     $        wo(:, :, 1) * dobson_u * 1e3 / zmasse / rmo3 * rmd)
[907]1244      ENDIF
1245
[1279]1246      IF (o_ozone_light%flag(iff)<=lev_files(iff) .and.
1247     $     read_climoz == 2) THEN
1248         CALL histwrite_phy(nid_files(iff), o_ozone_light%name, itau_w,
1249     $        wo(:, :, 2) * dobson_u * 1e3 / zmasse / rmo3 * rmd)
1250      ENDIF
1251
[1146]1252       IF (o_dtphy%flag(iff)<=lev_files(iff)) THEN
1253      CALL histwrite_phy(nid_files(iff),o_dtphy%name,itau_w,d_t)
[907]1254       ENDIF
1255
[1146]1256       IF (o_dqphy%flag(iff)<=lev_files(iff)) THEN
1257      CALL histwrite_phy(nid_files(iff),
1258     s                  o_dqphy%name,itau_w, d_qx(:,:,ivap))
[907]1259       ENDIF
1260
1261        DO nsrf=1, nbsrf
[1146]1262        IF (o_albe_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]1263        zx_tmp_fi2d(1 : klon) = falb1( 1 : klon, nsrf)
[1146]1264        CALL histwrite_phy(nid_files(iff),
1265     s                    o_albe_srf(nsrf)%name,itau_w,
1266     $                     zx_tmp_fi2d)
[907]1267        ENDIF
1268
[1146]1269        IF (o_rugs_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 
[907]1270        zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf)
[1146]1271        CALL histwrite_phy(nid_files(iff),
1272     s                     o_rugs_srf(nsrf)%name,itau_w,
[907]1273     $      zx_tmp_fi2d)
1274        ENDIF
1275
[1146]1276        IF (o_ages_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]1277        zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf)
[1146]1278        CALL histwrite_phy(nid_files(iff),
1279     s                     o_ages_srf(nsrf)%name,itau_w
[907]1280     $    ,zx_tmp_fi2d)
1281        ENDIF
1282        ENDDO !nsrf=1, nbsrf
1283
[1398]1284       IF (o_alb1%flag(iff)<=lev_files(iff)) THEN
1285      CALL histwrite_phy(nid_files(iff),o_alb1%name,itau_w,albsol1)
[907]1286       ENDIF
1287
[1398]1288       IF (o_alb2%flag(iff)<=lev_files(iff)) THEN
1289      CALL histwrite_phy(nid_files(iff),o_alb2%name,itau_w,albsol2)
[907]1290       ENDIF
1291
1292!FH Sorties pour la couche limite
1293      if (iflag_pbl>1) then
1294      zx_tmp_fi3d=0.
1295      do nsrf=1,nbsrf
1296         do k=1,klev
1297          zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k)
1298     $    +pctsrf(:,nsrf)*pbl_tke(:,k,nsrf)
1299         enddo
1300      enddo
[1146]1301       IF (o_tke%flag(iff)<=lev_files(iff)) THEN
1302      CALL histwrite_phy(nid_files(iff),o_tke%name,itau_w,zx_tmp_fi3d)
[907]1303       ENDIF
1304
[1146]1305       IF (o_tke_max%flag(iff)<=lev_files(iff)) THEN
1306      CALL histwrite_phy(nid_files(iff),
1307     s                   o_tke_max%name,itau_w,zx_tmp_fi3d)
[907]1308       ENDIF
1309      endif
1310
[1146]1311       IF (o_kz%flag(iff)<=lev_files(iff)) THEN
1312      CALL histwrite_phy(nid_files(iff),o_kz%name,itau_w,coefh)
[907]1313       ENDIF
1314
[1146]1315       IF (o_kz_max%flag(iff)<=lev_files(iff)) THEN
1316      CALL histwrite_phy(nid_files(iff),o_kz_max%name,itau_w,coefh)
[907]1317       ENDIF
1318
[1146]1319       IF (o_clwcon%flag(iff)<=lev_files(iff)) THEN
1320      CALL histwrite_phy(nid_files(iff),o_clwcon%name,itau_w,clwcon0)
[907]1321       ENDIF
1322
[1146]1323       IF (o_dtdyn%flag(iff)<=lev_files(iff)) THEN
1324      CALL histwrite_phy(nid_files(iff),o_dtdyn%name,itau_w,d_t_dyn)
[907]1325       ENDIF
1326
[1146]1327       IF (o_dqdyn%flag(iff)<=lev_files(iff)) THEN
1328      CALL histwrite_phy(nid_files(iff),o_dqdyn%name,itau_w,d_q_dyn)
[907]1329       ENDIF
1330
[1146]1331       IF (o_dudyn%flag(iff)<=lev_files(iff)) THEN
1332      CALL histwrite_phy(nid_files(iff),o_dudyn%name,itau_w,d_u_dyn)
[1054]1333       ENDIF                                                   
1334
[1146]1335       IF (o_dvdyn%flag(iff)<=lev_files(iff)) THEN                 
1336      CALL histwrite_phy(nid_files(iff),o_dvdyn%name,itau_w,d_v_dyn) 
[1054]1337       ENDIF                                                     
1338
[1146]1339       IF (o_dtcon%flag(iff)<=lev_files(iff)) THEN
[907]1340      zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys
[1146]1341      CALL histwrite_phy(nid_files(iff),o_dtcon%name,itau_w,zx_tmp_fi3d)
[907]1342       ENDIF
1343
[1146]1344       IF (o_ducon%flag(iff)<=lev_files(iff)) THEN
[907]1345      zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys
[1146]1346      CALL histwrite_phy(nid_files(iff),o_ducon%name,itau_w,zx_tmp_fi3d)
[907]1347       ENDIF
1348
[1146]1349       IF (o_dqcon%flag(iff)<=lev_files(iff)) THEN
[907]1350      zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
[1146]1351      CALL histwrite_phy(nid_files(iff),o_dqcon%name,itau_w,zx_tmp_fi3d)
[907]1352       ENDIF
1353
[1146]1354       IF (o_dtlsc%flag(iff)<=lev_files(iff)) THEN
[907]1355      zx_tmp_fi3d(1:klon,1:klev)=d_t_lsc(1:klon,1:klev)/pdtphys
[1146]1356      CALL histwrite_phy(nid_files(iff),o_dtlsc%name,itau_w,zx_tmp_fi3d)
[907]1357       ENDIF
1358
[1146]1359       IF (o_dtlschr%flag(iff)<=lev_files(iff)) THEN
[907]1360      zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+
1361     $                           d_t_eva(1:klon,1:klev))/pdtphys
[1146]1362      CALL histwrite_phy(nid_files(iff),
1363     s                   o_dtlschr%name,itau_w,zx_tmp_fi3d)
[907]1364       ENDIF
1365
[1146]1366       IF (o_dqlsc%flag(iff)<=lev_files(iff)) THEN
[907]1367      zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys
[1146]1368      CALL histwrite_phy(nid_files(iff),o_dqlsc%name,itau_w,zx_tmp_fi3d)
[907]1369       ENDIF
1370
[1507]1371!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1372! Sorties specifiques a la separation thermiques/non thermiques
1373       if (iflag_thermals>1) then
1374
1375       IF (o_dtlscth%flag(iff)<=lev_files(iff)) THEN
1376      zx_tmp_fi3d(1:klon,1:klev)=d_t_lscth(1:klon,1:klev)/pdtphys
1377      CALL
1378     s histwrite_phy(nid_files(iff),o_dtlscth%name,itau_w,zx_tmp_fi3d)
1379       ENDIF
1380
1381       IF (o_dtlscst%flag(iff)<=lev_files(iff)) THEN
1382      zx_tmp_fi3d(1:klon,1:klev)=d_t_lscst(1:klon,1:klev)/pdtphys
1383      CALL
1384     s histwrite_phy(nid_files(iff),o_dtlscst%name,itau_w,zx_tmp_fi3d)
1385       ENDIF
1386
1387       IF (o_dqlscth%flag(iff)<=lev_files(iff)) THEN
1388      zx_tmp_fi3d(1:klon,1:klev)=d_q_lscth(1:klon,1:klev)/pdtphys
1389      CALL
1390     s histwrite_phy(nid_files(iff),o_dqlscth%name,itau_w,zx_tmp_fi3d)
1391       ENDIF
1392
1393       IF (o_dqlscst%flag(iff)<=lev_files(iff)) THEN
1394      zx_tmp_fi3d(1:klon,1:klev)=d_q_lscst(1:klon,1:klev)/pdtphys
1395      CALL
1396     s histwrite_phy(nid_files(iff),o_dqlscst%name,itau_w,zx_tmp_fi3d)
1397       ENDIF
1398
1399       IF (o_plulth%flag(iff)<=lev_files(iff)) THEN
1400      CALL histwrite_phy(nid_files(iff),o_plulth%name,itau_w,plul_th)
1401       ENDIF
1402
1403       IF (o_plulst%flag(iff)<=lev_files(iff)) THEN
1404      CALL histwrite_phy(nid_files(iff),o_plulst%name,itau_w,plul_st)
1405       ENDIF
1406
1407      do k=1,klev
1408      do i=1,klon
1409          if (ptconvth(i,k)) then
1410           zx_tmp_fi3d(i,k)=1.
1411          else
1412           zx_tmp_fi3d(i,k)=0.
1413          endif
1414      enddo
1415      enddo
1416       IF (o_ptconvth%flag(iff)<=lev_files(iff)) THEN
1417      CALL
1418     s  histwrite_phy(nid_files(iff),o_ptconvth%name,itau_w,zx_tmp_fi3d)
1419       ENDIF
1420
1421      do i=1,klon
1422           zx_tmp_fi2d(1:klon)=lmax_th(:)
1423      enddo
1424       IF (o_ptconvth%flag(iff)<=lev_files(iff)) THEN
1425      CALL
1426     s histwrite_phy(nid_files(iff),o_lmaxth%name,itau_w,zx_tmp_fi2d)
1427       ENDIF
1428
1429      endif ! iflag_thermals>1
1430
1431!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1432
[1146]1433       IF (o_dtvdf%flag(iff)<=lev_files(iff)) THEN
[907]1434      zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys
[1146]1435      CALL histwrite_phy(nid_files(iff),o_dtvdf%name,itau_w,zx_tmp_fi3d)
[907]1436       ENDIF
1437
[1146]1438       IF (o_dqvdf%flag(iff)<=lev_files(iff)) THEN
[907]1439      zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
[1146]1440      CALL histwrite_phy(nid_files(iff),o_dqvdf%name,itau_w,zx_tmp_fi3d)
[907]1441       ENDIF
1442
[1146]1443       IF (o_dteva%flag(iff)<=lev_files(iff)) THEN
[907]1444      zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys
[1146]1445      CALL histwrite_phy(nid_files(iff),o_dteva%name,itau_w,zx_tmp_fi3d)
[907]1446       ENDIF
1447
[1146]1448       IF (o_dqeva%flag(iff)<=lev_files(iff)) THEN
[907]1449      zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys
[1146]1450      CALL histwrite_phy(nid_files(iff),o_dqeva%name,itau_w,zx_tmp_fi3d)
[907]1451       ENDIF
1452
[1146]1453       IF (o_ptconv%flag(iff)<=lev_files(iff)) THEN
[907]1454      zpt_conv = 0.
1455      where (ptconv) zpt_conv = 1.
[1146]1456      CALL histwrite_phy(nid_files(iff),o_ptconv%name,itau_w,zpt_conv)
[907]1457       ENDIF
1458
[1146]1459       IF (o_ratqs%flag(iff)<=lev_files(iff)) THEN
1460      CALL histwrite_phy(nid_files(iff),o_ratqs%name,itau_w,ratqs)
[907]1461       ENDIF
1462
[1146]1463       IF (o_dtthe%flag(iff)<=lev_files(iff)) THEN
[907]1464      zx_tmp_fi3d(1:klon,1:klev)=d_t_ajs(1:klon,1:klev)/pdtphys
[1146]1465      CALL histwrite_phy(nid_files(iff),o_dtthe%name,itau_w,zx_tmp_fi3d)
[907]1466       ENDIF
1467
[1036]1468       IF (iflag_thermals.gt.1) THEN
[1334]1469        IF (o_ftime_th%flag(iff)<=lev_files(iff)) THEN
1470! Pour l instant 0 a y reflichir pour les thermiques
1471         zx_tmp_fi2d=0. 
1472        CALL histwrite_phy(nid_files(iff),o_ftime_th%name,
1473     s                     itau_w,zx_tmp_fi2d)
1474        ENDIF
1475
[1146]1476        IF (o_f_th%flag(iff)<=lev_files(iff)) THEN
1477        CALL histwrite_phy(nid_files(iff),o_f_th%name,itau_w,fm_therm)
[951]1478        ENDIF
[945]1479
[1146]1480        IF (o_e_th%flag(iff)<=lev_files(iff)) THEN
1481        CALL histwrite_phy(nid_files(iff),o_e_th%name,itau_w,entr_therm)
[951]1482        ENDIF
[945]1483
[1146]1484        IF (o_w_th%flag(iff)<=lev_files(iff)) THEN
1485        CALL histwrite_phy(nid_files(iff),o_w_th%name,itau_w,zw2)
[1028]1486        ENDIF
1487
[1146]1488        IF (o_q_th%flag(iff)<=lev_files(iff)) THEN
1489        CALL histwrite_phy(nid_files(iff),o_q_th%name,itau_w,zqasc)
[1028]1490        ENDIF
1491
[1146]1492        IF (o_lambda_th%flag(iff)<=lev_files(iff)) THEN
1493        CALL histwrite_phy(nid_files(iff),
1494     s                     o_lambda_th%name,itau_w,lambda_th)
[1028]1495        ENDIF
1496
[1146]1497        IF (o_a_th%flag(iff)<=lev_files(iff)) THEN
1498        CALL histwrite_phy(nid_files(iff),o_a_th%name,itau_w,fraca)
[1028]1499        ENDIF
1500
[1146]1501       IF (o_d_th%flag(iff)<=lev_files(iff)) THEN
1502       CALL histwrite_phy(nid_files(iff),o_d_th%name,itau_w,detr_therm)
[1028]1503       ENDIF
1504
[945]1505
[1146]1506       IF (o_f0_th%flag(iff)<=lev_files(iff)) THEN
1507      CALL histwrite_phy(nid_files(iff),o_f0_th%name,itau_w,f0)
[945]1508       ENDIF
1509
[1507]1510       IF (o_zmax_th%flag(iff)<=lev_files(iff)) THEN
1511       CALL histwrite_phy(nid_files(iff),o_zmax_th%name,itau_w,zmax_th)
[945]1512       ENDIF
1513
[1146]1514       IF (o_dqthe%flag(iff)<=lev_files(iff)) THEN
[907]1515      zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys
[1146]1516      CALL histwrite_phy(nid_files(iff),o_dqthe%name,itau_w,zx_tmp_fi3d)
[907]1517       ENDIF
1518
[1398]1519      ENDIF !iflag_thermals
1520
[1146]1521       IF (o_dtajs%flag(iff)<=lev_files(iff)) THEN
[907]1522      zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys
[1146]1523      CALL histwrite_phy(nid_files(iff),o_dtajs%name,itau_w,zx_tmp_fi3d)
[907]1524       ENDIF
1525
[1146]1526       IF (o_dqajs%flag(iff)<=lev_files(iff)) THEN
[907]1527      zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys
[1146]1528      CALL histwrite_phy(nid_files(iff),o_dqajs%name,itau_w,zx_tmp_fi3d)
[907]1529       ENDIF
1530
[1146]1531       IF (o_dtswr%flag(iff)<=lev_files(iff)) THEN
[907]1532      zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY
[1146]1533      CALL histwrite_phy(nid_files(iff),o_dtswr%name,itau_w,zx_tmp_fi3d)
[907]1534       ENDIF
1535
[1146]1536       IF (o_dtsw0%flag(iff)<=lev_files(iff)) THEN
[907]1537      zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)/RDAY
[1146]1538      CALL histwrite_phy(nid_files(iff),o_dtsw0%name,itau_w,zx_tmp_fi3d)
[907]1539       ENDIF
1540
[1146]1541       IF (o_dtlwr%flag(iff)<=lev_files(iff)) THEN
[907]1542      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY
[1146]1543      CALL histwrite_phy(nid_files(iff),o_dtlwr%name,itau_w,zx_tmp_fi3d)
[907]1544       ENDIF
1545
[1146]1546       IF (o_dtlw0%flag(iff)<=lev_files(iff)) THEN
[907]1547      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)/RDAY
[1146]1548      CALL histwrite_phy(nid_files(iff),o_dtlw0%name,itau_w,zx_tmp_fi3d)
[907]1549       ENDIF
1550
[1146]1551       IF (o_dtec%flag(iff)<=lev_files(iff)) THEN
[907]1552      zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)
[1146]1553      CALL histwrite_phy(nid_files(iff),o_dtec%name,itau_w,zx_tmp_fi3d)
[907]1554       ENDIF
1555
[1146]1556       IF (o_duvdf%flag(iff)<=lev_files(iff)) THEN
[907]1557      zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
[1146]1558      CALL histwrite_phy(nid_files(iff),o_duvdf%name,itau_w,zx_tmp_fi3d)
[907]1559       ENDIF
1560
[1146]1561       IF (o_dvvdf%flag(iff)<=lev_files(iff)) THEN
[907]1562      zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
[1146]1563      CALL histwrite_phy(nid_files(iff),o_dvvdf%name,itau_w,zx_tmp_fi3d)
[907]1564       ENDIF
1565
1566       IF (ok_orodr) THEN
[1146]1567      IF (o_duoro%flag(iff)<=lev_files(iff)) THEN
[907]1568      zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
[1146]1569      CALL histwrite_phy(nid_files(iff),o_duoro%name,itau_w,zx_tmp_fi3d)
[907]1570       ENDIF
1571
[1146]1572      IF (o_dvoro%flag(iff)<=lev_files(iff)) THEN
[907]1573      zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
[1146]1574      CALL histwrite_phy(nid_files(iff),o_dvoro%name,itau_w,zx_tmp_fi3d)
[907]1575      ENDIF
1576       ENDIF
1577
1578        IF (ok_orolf) THEN
[1146]1579       IF (o_dulif%flag(iff)<=lev_files(iff)) THEN
[907]1580      zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
[1146]1581      CALL histwrite_phy(nid_files(iff),o_dulif%name,itau_w,zx_tmp_fi3d)
[907]1582       ENDIF
1583
[1146]1584        IF (o_dvlif%flag(iff)<=lev_files(iff)) THEN
[907]1585      zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
[1146]1586      CALL histwrite_phy(nid_files(iff),o_dvlif%name,itau_w,zx_tmp_fi3d)
[907]1587       ENDIF
1588        ENDIF
1589
[1403]1590        if (nqtot.GE.3) THEN
1591         DO iq=3,nqtot
[1146]1592       IF (o_trac(iq-2)%flag(iff)<=lev_files(iff)) THEN
1593         CALL histwrite_phy(nid_files(iff),
1594     s                  o_trac(iq-2)%name,itau_w,qx(:,:,iq))
1595       ENDIF
[1403]1596         ENDDO
1597        endif
[907]1598
1599      if (ok_sync) then
1600c$OMP MASTER
1601        call histsync(nid_files(iff))
1602c$OMP END MASTER
1603      endif
1604
1605       ENDIF ! clef_files
1606
1607      ENDDO ! iff=1,nfiles
Note: See TracBrowser for help on using the repository browser.