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

Last change on this file since 1214 was 1213, checked in by idelkadi, 15 years ago

Rajout de la possibilite de lire dans *.def les frequences de sorties pour les different fichiers de sortie, sous format :
phys_out_filetimesteps= Xmth, Yday, Zhor, Ahor, Bmth (X, Y, Z, A et B entiers)
Corrections dans phys_output_mod.F90

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