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

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

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

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

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

ACo + JG

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 41.1 KB
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),
221     s                   o_LWdn200%name,itau_w,zx_tmp_fi2d)
[907]222       ENDIF
223
[1083]224       IF (o_LWdn200clr%flag(iff)<=lev_files(iff)) THEN
225      CALL histwrite_phy(nid_files(iff),
226     s                  o_LWdn200clr%name,itau_w,zx_tmp_fi2d)
[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! if=1 on ecrit u v w phi sur 850 700 500 200 au niv 1
578! if=2 on ecrit w et ph 500 seulement au niv 1
579!        et u v sur 850 700 500 200
580! if=3 on ecrit ph a 500 seulement au niv 1
581!      on ecrit u v t q a 850 700 500 200 au niv 3
582
[1083]583        ll=0
[907]584        DO k=1, nlevSTD
585         IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
586         IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)
587         IF(bb2.EQ."850".OR.bb2.EQ."700".OR.
588     $      bb2.EQ."500".OR.bb2.EQ."200") THEN
589
590! a refaire correctement !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[1083]591          ll=ll+1
592       IF (o_uSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
593       CALL histwrite_phy(nid_files(iff),o_uSTDlevs(ll)%name,
594     &                    itau_w,uwriteSTD(:,k,iff))
[907]595       ENDIF
596
[1083]597       IF (o_vSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
598      CALL histwrite_phy(nid_files(iff),o_vSTDlevs(ll)%name, 
599     &                   itau_w,vwriteSTD(:,k,iff))
[907]600       ENDIF
601
[1083]602       IF (o_wSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
603      CALL histwrite_phy(nid_files(iff),o_wSTDlevs(ll)%name,
604     &                    itau_w,wwriteSTD(:,k,iff))
[907]605       ENDIF
606
[1083]607       IF (o_phiSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
608      CALL histwrite_phy(nid_files(iff),o_phiSTDlevs(ll)%name,
[1055]609     &               itau_w,phiwriteSTD(:,k,iff))
[907]610       ENDIF
611
[1083]612       IF (o_qSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
613      CALL histwrite_phy(nid_files(iff),o_qSTDlevs(ll)%name,
614     &                   itau_w, qwriteSTD(:,k,iff))
[907]615       ENDIF
616
[1083]617       IF (o_tSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN
618      CALL histwrite_phy(nid_files(iff),o_tSTDlevs(ll)%name,
619     &                   itau_w, twriteSTD(:,k,iff))
[907]620       ENDIF
621
622       ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
623       ENDDO
624
[1083]625      IF (o_t_oce_sic%flag(iff)<=lev_files(iff)) THEN
[907]626      DO i=1, klon
627       IF (pctsrf(i,is_oce).GT.epsfra.OR.
628     $     pctsrf(i,is_sic).GT.epsfra) THEN
629        zx_tmp_fi2d(i) = (ftsol(i, is_oce) * pctsrf(i,is_oce)+
630     $                   ftsol(i, is_sic) * pctsrf(i,is_sic))/
631     $                   (pctsrf(i,is_oce)+pctsrf(i,is_sic))
632       ELSE
633        zx_tmp_fi2d(i) = 273.15
634       ENDIF
635      ENDDO
[1083]636      CALL histwrite_phy(nid_files(iff),
637     s                   o_t_oce_sic%name,itau_w,zx_tmp_fi2d)
[907]638      ENDIF
639
[1123]640! Couplage convection-couche limite
641      IF (iflag_con.GE.3) THEN
[951]642      IF (iflag_coupl.EQ.1) THEN
[1083]643       IF (o_ale_bl%flag(iff)<=lev_files(iff)) THEN
644       CALL histwrite_phy(nid_files(iff),o_ale_bl%name,itau_w,ale_bl)
[951]645       ENDIF
[1083]646       IF (o_alp_bl%flag(iff)<=lev_files(iff)) THEN
647       CALL histwrite_phy(nid_files(iff),o_alp_bl%name,itau_w,alp_bl)
[951]648       ENDIF
649      ENDIF !iflag_coupl.EQ.1
[1123]650      ENDIF !(iflag_con.GE.3)
[1119]651
[1123]652! Wakes
653      IF (iflag_con.EQ.3) THEN
[951]654      IF (iflag_wake.EQ.1) THEN
[1083]655       IF (o_ale_wk%flag(iff)<=lev_files(iff)) THEN
656       CALL histwrite_phy(nid_files(iff),o_ale_wk%name,itau_w,ale_wake)
[951]657       ENDIF
[1083]658       IF (o_alp_wk%flag(iff)<=lev_files(iff)) THEN
659       CALL histwrite_phy(nid_files(iff),o_alp_wk%name,itau_w,alp_wake)
[951]660       ENDIF
[973]661
[1123]662       IF (o_ale%flag(iff)<=lev_files(iff)) THEN
663       CALL histwrite_phy(nid_files(iff),o_ale%name,itau_w,ale)
664       ENDIF
665       IF (o_alp%flag(iff)<=lev_files(iff)) THEN
666       CALL histwrite_phy(nid_files(iff),o_alp%name,itau_w,alp)
667       ENDIF
668       IF (o_cin%flag(iff)<=lev_files(iff)) THEN
669       CALL histwrite_phy(nid_files(iff),o_cin%name,itau_w,cin)
670       ENDIF
[1083]671       IF (o_wape%flag(iff)<=lev_files(iff)) THEN
672       CALL histwrite_phy(nid_files(iff),o_WAPE%name,itau_w,wake_pe)
[973]673       ENDIF
[1083]674       IF (o_wake_h%flag(iff)<=lev_files(iff)) THEN
675      CALL histwrite_phy(nid_files(iff),o_wake_h%name,itau_w,wake_h)
[1063]676       ENDIF
677
[1083]678       IF (o_wake_s%flag(iff)<=lev_files(iff)) THEN
679      CALL histwrite_phy(nid_files(iff),o_wake_s%name,itau_w,wake_s)
[1063]680       ENDIF
681
[1083]682        IF (o_wake_deltat%flag(iff)<=lev_files(iff)) THEN
683       CALL histwrite_phy(nid_files(iff),o_wake_deltat%name,
[1063]684     $                     itau_w,wake_deltat)
685        ENDIF
686
[1083]687        IF (o_wake_deltaq%flag(iff)<=lev_files(iff)) THEN
688       CALL histwrite_phy(nid_files(iff),o_wake_deltaq%name,
[1063]689     $                    itau_w,wake_deltaq)
690        ENDIF
691
[1083]692        IF (o_wake_omg%flag(iff)<=lev_files(iff)) THEN
[1123]693       CALL histwrite_phy(nid_files(iff),
694     s                    o_wake_omg%name,itau_w,wake_omg)
[1063]695        ENDIF
[1123]696
697         IF (o_dtwak%flag(iff)<=lev_files(iff)) THEN
698           zx_tmp_fi3d(1:klon,1:klev)=d_t_wake(1:klon,1:klev)
[1119]699     &                                        /pdtphys
[1123]700           CALL histwrite_phy(nid_files(iff),
701     &                       o_dtwak%name,itau_w,zx_tmp_fi3d)
702         ENDIF
[1063]703
[1119]704        IF (o_dqwak%flag(iff)<=lev_files(iff)) THEN
[1123]705        zx_tmp_fi3d(1:klon,1:klev)=d_q_wake(1:klon,1:klev)/pdtphys
706        CALL histwrite_phy(nid_files(iff),
707     &                     o_dqwak%name,itau_w,zx_tmp_fi3d)
[1063]708        ENDIF
[1123]709      ENDIF ! iflag_wake.EQ.1
[1063]710
[1123]711        IF (o_Vprecip%flag(iff)<=lev_files(iff)) THEN
712       CALL histwrite_phy(nid_files(iff),o_Vprecip%name,itau_w,Vprecip)
713        ENDIF
714
[1083]715        IF (o_ftd%flag(iff)<=lev_files(iff)) THEN
716       CALL histwrite_phy(nid_files(iff),o_ftd%name,itau_w,ftd)
[1063]717        ENDIF
718
[1083]719        IF (o_fqd%flag(iff)<=lev_files(iff)) THEN
720       CALL histwrite_phy(nid_files(iff),o_fqd%name,itau_w,fqd)
[1063]721        ENDIF
[1083]722      ENDIF !(iflag_con.EQ.3) 
[996]723 
[1123]724      IF (type_ocean=='slab ') THEN
725      IF ( o_slab_bils%flag(iff)<=lev_files(iff)) 
[996]726     $     CALL histwrite_phy(
[1083]727     $     nid_files(iff),o_slab_bils%name,itau_w,slab_wfbils)
[1123]728
[996]729      ENDIF !type_ocean == force/slab
[907]730
[1083]731      IF (o_weakinv%flag(iff)<=lev_files(iff)) THEN
732      CALL histwrite_phy(nid_files(iff),
733     s                  o_weakinv%name,itau_w,weak_inversion)
[907]734      ENDIF
735
[1083]736      IF (o_dthmin%flag(iff)<=lev_files(iff)) THEN
737      CALL histwrite_phy(nid_files(iff),o_dthmin%name,itau_w,dthmin)
[907]738      ENDIF
739
[1083]740       IF (o_cldtau%flag(iff)<=lev_files(iff)) THEN
741       CALL histwrite_phy(nid_files(iff),o_cldtau%name,itau_w,cldtau)
[907]742       ENDIF
743
[1083]744       IF (o_cldemi%flag(iff)<=lev_files(iff)) THEN
745       CALL histwrite_phy(nid_files(iff),o_cldemi%name,itau_w,cldemi)
[907]746       ENDIF
747
[1083]748!      IF (o_pr_con_l%flag(iff)<=lev_files(iff)) THEN
749!      CALL histwrite_phy(nid_files(iff),o_pmflxr%name,itau_w,pmflxr)
[973]750!      ENDIF
[929]751
[1083]752!      IF (o_pr_con_i%flag(iff)<=lev_files(iff)) THEN
753!      CALL histwrite_phy(nid_files(iff),o_pmflxs%name,itau_w,pmflxs)
[973]754!      ENDIF
[929]755
[1083]756!      IF (o_pr_lsc_l%flag(iff)<=lev_files(iff)) THEN
757!      CALL histwrite_phy(nid_files(iff),o_prfl%name,itau_w,prfl)
[973]758!      ENDIF
[929]759
[1083]760!      IF (o_pr_lsc_i%flag(iff)<=lev_files(iff)) THEN
761!      CALL histwrite_phy(nid_files(iff),o_psfl%name,itau_w,psfl)
[973]762!      ENDIF
[929]763
[1083]764      IF (o_rh2m%flag(iff)<=lev_files(iff)) THEN
[907]765      DO i=1, klon
766       zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
767      ENDDO
[1083]768      CALL histwrite_phy(nid_files(iff),o_rh2m%name,itau_w,zx_tmp_fi2d)
[907]769      ENDIF
770
[1083]771      IF (o_qsat2m%flag(iff)<=lev_files(iff)) THEN
772      CALL histwrite_phy(nid_files(iff),o_qsat2m%name,itau_w,qsat2m)
[907]773      ENDIF
774
[1083]775      IF (o_tpot%flag(iff)<=lev_files(iff)) THEN
776      CALL histwrite_phy(nid_files(iff),o_tpot%name,itau_w,tpot)
[907]777      ENDIF
778
[1083]779       IF (o_tpote%flag(iff)<=lev_files(iff)) THEN
780      CALL histwrite_phy(nid_files(iff),o_tpote%name,itau_w,tpote)
[907]781       ENDIF
782
[1083]783      IF (o_SWnetOR%flag(iff)<=lev_files(iff)) THEN
[907]784      zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, is_ter)
[1083]785      CALL histwrite_phy(nid_files(iff),
786     s                   o_SWnetOR%name,itau_w, zx_tmp_fi2d)
[907]787      ENDIF
788
[1083]789      IF (o_SWdownOR%flag(iff)<=lev_files(iff)) THEN
[907]790      zx_tmp_fi2d(1:klon) = solsw(1:klon)/(1.-albsol1(1:klon))
[1083]791      CALL histwrite_phy(nid_files(iff),
792     s                   o_SWdownOR%name,itau_w, zx_tmp_fi2d)
[907]793      ENDIF
794
[1083]795      IF (o_LWdownOR%flag(iff)<=lev_files(iff)) THEN
796      CALL histwrite_phy(nid_files(iff),
797     s                  o_LWdownOR%name,itau_w,sollwdown)
[907]798      ENDIF
799
[1083]800      IF (o_snowl%flag(iff)<=lev_files(iff)) THEN
801      CALL histwrite_phy(nid_files(iff),o_snowl%name,itau_w,snow_lsc)
[907]802      ENDIF
803
[1083]804      IF (o_solldown%flag(iff)<=lev_files(iff)) THEN
805      CALL histwrite_phy(nid_files(iff),
806     s                   o_solldown%name,itau_w,sollwdown)
[907]807      ENDIF
808
[1083]809      IF (o_dtsvdfo%flag(iff)<=lev_files(iff)) THEN
810      CALL histwrite_phy(nid_files(iff),
811     s                 o_dtsvdfo%name,itau_w,d_ts(:,is_oce))
[907]812      ENDIF
813
[1083]814      IF (o_dtsvdft%flag(iff)<=lev_files(iff)) THEN
815      CALL histwrite_phy(nid_files(iff),
816     s                   o_dtsvdft%name,itau_w,d_ts(:,is_ter))
[907]817      ENDIF
818
[1083]819       IF (o_dtsvdfg%flag(iff)<=lev_files(iff)) THEN
[907]820        CALL histwrite_phy(nid_files(iff),
[1083]821     $                   o_dtsvdfg%name,itau_w, d_ts(:,is_lic))
[907]822       ENDIF
823
[1083]824       IF (o_dtsvdfi%flag(iff)<=lev_files(iff)) THEN
825      CALL histwrite_phy(nid_files(iff),
826     s                   o_dtsvdfi%name,itau_w,d_ts(:,is_sic))
[907]827       ENDIF
828
[1083]829       IF (o_rugs%flag(iff)<=lev_files(iff)) THEN
830      CALL histwrite_phy(nid_files(iff),o_rugs%name,itau_w,zxrugs)
[907]831       ENDIF
832
[1095]833       IF (ok_ade) THEN
[1150]834          IF (o_topswad%flag(iff)<=lev_files(iff)) THEN
835             CALL histwrite_phy(nid_files(iff),o_topswad%name,itau_w,
836     $            topswad_aero)
837          ENDIF
838          IF (o_solswad%flag(iff)<=lev_files(iff)) THEN
839             CALL histwrite_phy(nid_files(iff),o_solswad%name,itau_w,
840     $            solswad_aero)
841          ENDIF
[1095]842       ENDIF
843
844       IF (ok_aie) THEN
[1150]845          IF (o_topswai%flag(iff)<=lev_files(iff)) THEN
846             CALL histwrite_phy(nid_files(iff),o_topswai%name,itau_w,
847     $            topswai_aero)
848          ENDIF
849          IF (o_solswai%flag(iff)<=lev_files(iff)) THEN
850             CALL histwrite_phy(nid_files(iff),o_solswai%name,itau_w,
851     $            solswai_aero)
852          ENDIF
[1095]853       ENDIF
854
[907]855! Champs 3D:
[1083]856       IF (o_lwcon%flag(iff)<=lev_files(iff)) THEN
857      CALL histwrite_phy(nid_files(iff),o_lwcon%name,itau_w,flwc)
[907]858       ENDIF
859
[1083]860       IF (o_iwcon%flag(iff)<=lev_files(iff)) THEN
861      CALL histwrite_phy(nid_files(iff),o_iwcon%name,itau_w,fiwc)
[907]862       ENDIF
863
[1083]864       IF (o_temp%flag(iff)<=lev_files(iff)) THEN
865      CALL histwrite_phy(nid_files(iff),o_temp%name,itau_w,t_seri)
[907]866       ENDIF
867
[1083]868       IF (o_theta%flag(iff)<=lev_files(iff)) THEN
869      CALL histwrite_phy(nid_files(iff),o_theta%name,itau_w,theta)
[945]870       ENDIF
871
[1083]872       IF (o_ovap%flag(iff)<=lev_files(iff)) THEN
873      CALL histwrite_phy(nid_files(iff),o_ovap%name,itau_w,qx(:,:,ivap))
[907]874       ENDIF
875
[1123]876       IF (o_ovapinit%flag(iff)<=lev_files(iff)) THEN
877      CALL histwrite_phy(nid_files(iff),
878     $                   o_ovapinit%name,itau_w,q_seri)
879       ENDIF
880
[1083]881       IF (o_geop%flag(iff)<=lev_files(iff)) THEN
882      CALL histwrite_phy(nid_files(iff),o_geop%name,itau_w,zphi)
[907]883       ENDIF
884
[1083]885       IF (o_vitu%flag(iff)<=lev_files(iff)) THEN
886      CALL histwrite_phy(nid_files(iff),o_vitu%name,itau_w,u_seri)
[907]887       ENDIF
888
[1083]889       IF (o_vitv%flag(iff)<=lev_files(iff)) THEN
890      CALL histwrite_phy(nid_files(iff),o_vitv%name,itau_w,v_seri)
[907]891       ENDIF
892
[1083]893       IF (o_vitw%flag(iff)<=lev_files(iff)) THEN
894      CALL histwrite_phy(nid_files(iff),o_vitw%name,itau_w,omega)
[907]895       ENDIF
896
[1083]897        IF (o_pres%flag(iff)<=lev_files(iff)) THEN
898      CALL histwrite_phy(nid_files(iff),o_pres%name,itau_w,pplay)
[907]899        ENDIF
900
[1083]901       IF (o_rneb%flag(iff)<=lev_files(iff)) THEN
902      CALL histwrite_phy(nid_files(iff),o_rneb%name,itau_w,cldfra)
[907]903       ENDIF
904
[1083]905       IF (o_rnebcon%flag(iff)<=lev_files(iff)) THEN
906      CALL histwrite_phy(nid_files(iff),o_rnebcon%name,itau_w,rnebcon)
[907]907       ENDIF
908
[1083]909       IF (o_rhum%flag(iff)<=lev_files(iff)) THEN
910      CALL histwrite_phy(nid_files(iff),o_rhum%name,itau_w,zx_rh)
[907]911       ENDIF
912
[1083]913      IF (o_ozone%flag(iff)<=lev_files(iff)) THEN
[907]914      DO k=1, klev
915       DO i=1, klon
916         zx_tmp_fi3d(i,k)=wo(i,k)*RG/46.6968
917     $                    /(paprs(i,k)-paprs(i,k+1))
918     $                    *(paprs(i,1)/101325.0)
919       ENDDO !i
920      ENDDO !k
[1083]921      CALL histwrite_phy(nid_files(iff),o_ozone%name,itau_w,zx_tmp_fi3d)
[907]922      ENDIF
923
[1083]924       IF (o_dtphy%flag(iff)<=lev_files(iff)) THEN
925      CALL histwrite_phy(nid_files(iff),o_dtphy%name,itau_w,d_t)
[907]926       ENDIF
927
[1083]928       IF (o_dqphy%flag(iff)<=lev_files(iff)) THEN
929      CALL histwrite_phy(nid_files(iff),
930     s                  o_dqphy%name,itau_w, d_qx(:,:,ivap))
[907]931       ENDIF
932
933        DO nsrf=1, nbsrf
[1083]934        IF (o_albe_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]935        zx_tmp_fi2d(1 : klon) = falb1( 1 : klon, nsrf)
[1083]936        CALL histwrite_phy(nid_files(iff),
937     s                    o_albe_srf(nsrf)%name,itau_w,
938     $                     zx_tmp_fi2d)
[907]939        ENDIF
940
[1083]941        IF (o_rugs_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 
[907]942        zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf)
[1083]943        CALL histwrite_phy(nid_files(iff),
944     s                     o_rugs_srf(nsrf)%name,itau_w,
[907]945     $      zx_tmp_fi2d)
946        ENDIF
947
[1083]948        IF (o_ages_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN
[907]949        zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf)
[1083]950        CALL histwrite_phy(nid_files(iff),
951     s                     o_ages_srf(nsrf)%name,itau_w
[907]952     $    ,zx_tmp_fi2d)
953        ENDIF
954        ENDDO !nsrf=1, nbsrf
955
[1083]956       IF (o_albs%flag(iff)<=lev_files(iff)) THEN
957      CALL histwrite_phy(nid_files(iff),o_albs%name,itau_w,albsol1)
[907]958       ENDIF
959
[1083]960       IF (o_albslw%flag(iff)<=lev_files(iff)) THEN
961      CALL histwrite_phy(nid_files(iff),o_albslw%name,itau_w,albsol2)
[907]962       ENDIF
963
964!FH Sorties pour la couche limite
965      if (iflag_pbl>1) then
966      zx_tmp_fi3d=0.
967      do nsrf=1,nbsrf
968         do k=1,klev
969          zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k)
970     $    +pctsrf(:,nsrf)*pbl_tke(:,k,nsrf)
971         enddo
972      enddo
[1083]973       IF (o_tke%flag(iff)<=lev_files(iff)) THEN
974      CALL histwrite_phy(nid_files(iff),o_tke%name,itau_w,zx_tmp_fi3d)
[907]975       ENDIF
976
[1083]977       IF (o_tke_max%flag(iff)<=lev_files(iff)) THEN
978      CALL histwrite_phy(nid_files(iff),
979     s                   o_tke_max%name,itau_w,zx_tmp_fi3d)
[907]980       ENDIF
981      endif
982
[1083]983       IF (o_kz%flag(iff)<=lev_files(iff)) THEN
984      CALL histwrite_phy(nid_files(iff),o_kz%name,itau_w,coefh)
[907]985       ENDIF
986
[1083]987       IF (o_kz_max%flag(iff)<=lev_files(iff)) THEN
988      CALL histwrite_phy(nid_files(iff),o_kz_max%name,itau_w,coefh)
[907]989       ENDIF
990
[1083]991       IF (o_clwcon%flag(iff)<=lev_files(iff)) THEN
992      CALL histwrite_phy(nid_files(iff),o_clwcon%name,itau_w,clwcon0)
[907]993       ENDIF
994
[1083]995       IF (o_dtdyn%flag(iff)<=lev_files(iff)) THEN
996      CALL histwrite_phy(nid_files(iff),o_dtdyn%name,itau_w,d_t_dyn)
[907]997       ENDIF
998
[1083]999       IF (o_dqdyn%flag(iff)<=lev_files(iff)) THEN
1000      CALL histwrite_phy(nid_files(iff),o_dqdyn%name,itau_w,d_q_dyn)
[907]1001       ENDIF
1002
[1083]1003       IF (o_dudyn%flag(iff)<=lev_files(iff)) THEN
1004      CALL histwrite_phy(nid_files(iff),o_dudyn%name,itau_w,d_u_dyn)
[1054]1005       ENDIF                                                   
1006
[1083]1007       IF (o_dvdyn%flag(iff)<=lev_files(iff)) THEN                 
1008      CALL histwrite_phy(nid_files(iff),o_dvdyn%name,itau_w,d_v_dyn) 
[1054]1009       ENDIF                                                     
1010
[1083]1011       IF (o_dtcon%flag(iff)<=lev_files(iff)) THEN
[907]1012      zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys
[1083]1013      CALL histwrite_phy(nid_files(iff),o_dtcon%name,itau_w,zx_tmp_fi3d)
[907]1014       ENDIF
1015
[1083]1016       IF (o_ducon%flag(iff)<=lev_files(iff)) THEN
[907]1017      zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys
[1083]1018      CALL histwrite_phy(nid_files(iff),o_ducon%name,itau_w,zx_tmp_fi3d)
[907]1019       ENDIF
1020
[1083]1021       IF (o_dqcon%flag(iff)<=lev_files(iff)) THEN
[907]1022      zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
[1083]1023      CALL histwrite_phy(nid_files(iff),o_dqcon%name,itau_w,zx_tmp_fi3d)
[907]1024       ENDIF
1025
[1083]1026       IF (o_dtlsc%flag(iff)<=lev_files(iff)) THEN
[907]1027      zx_tmp_fi3d(1:klon,1:klev)=d_t_lsc(1:klon,1:klev)/pdtphys
[1083]1028      CALL histwrite_phy(nid_files(iff),o_dtlsc%name,itau_w,zx_tmp_fi3d)
[907]1029       ENDIF
1030
[1083]1031       IF (o_dtlschr%flag(iff)<=lev_files(iff)) THEN
[907]1032      zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+
1033     $                           d_t_eva(1:klon,1:klev))/pdtphys
[1083]1034      CALL histwrite_phy(nid_files(iff),
1035     s                   o_dtlschr%name,itau_w,zx_tmp_fi3d)
[907]1036       ENDIF
1037
[1083]1038       IF (o_dqlsc%flag(iff)<=lev_files(iff)) THEN
[907]1039      zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys
[1083]1040      CALL histwrite_phy(nid_files(iff),o_dqlsc%name,itau_w,zx_tmp_fi3d)
[907]1041       ENDIF
1042
[1083]1043       IF (o_dtvdf%flag(iff)<=lev_files(iff)) THEN
[907]1044      zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys
[1083]1045      CALL histwrite_phy(nid_files(iff),o_dtvdf%name,itau_w,zx_tmp_fi3d)
[907]1046       ENDIF
1047
[1083]1048       IF (o_dqvdf%flag(iff)<=lev_files(iff)) THEN
[907]1049      zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
[1083]1050      CALL histwrite_phy(nid_files(iff),o_dqvdf%name,itau_w,zx_tmp_fi3d)
[907]1051       ENDIF
1052
[1083]1053       IF (o_dteva%flag(iff)<=lev_files(iff)) THEN
[907]1054      zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys
[1083]1055      CALL histwrite_phy(nid_files(iff),o_dteva%name,itau_w,zx_tmp_fi3d)
[907]1056       ENDIF
1057
[1083]1058       IF (o_dqeva%flag(iff)<=lev_files(iff)) THEN
[907]1059      zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys
[1083]1060      CALL histwrite_phy(nid_files(iff),o_dqeva%name,itau_w,zx_tmp_fi3d)
[907]1061       ENDIF
1062
[1083]1063       IF (o_ptconv%flag(iff)<=lev_files(iff)) THEN
[907]1064      zpt_conv = 0.
1065      where (ptconv) zpt_conv = 1.
[1083]1066      CALL histwrite_phy(nid_files(iff),o_ptconv%name,itau_w,zpt_conv)
[907]1067       ENDIF
1068
[1083]1069       IF (o_ratqs%flag(iff)<=lev_files(iff)) THEN
1070      CALL histwrite_phy(nid_files(iff),o_ratqs%name,itau_w,ratqs)
[907]1071       ENDIF
1072
[1083]1073       IF (o_dtthe%flag(iff)<=lev_files(iff)) THEN
[907]1074      zx_tmp_fi3d(1:klon,1:klev)=d_t_ajs(1:klon,1:klev)/pdtphys
[1083]1075      CALL histwrite_phy(nid_files(iff),o_dtthe%name,itau_w,zx_tmp_fi3d)
[907]1076       ENDIF
1077
[1036]1078       IF (iflag_thermals.gt.1) THEN
[1083]1079        IF (o_f_th%flag(iff)<=lev_files(iff)) THEN
1080        CALL histwrite_phy(nid_files(iff),o_f_th%name,itau_w,fm_therm)
[951]1081        ENDIF
[945]1082
[1083]1083        IF (o_e_th%flag(iff)<=lev_files(iff)) THEN
1084        CALL histwrite_phy(nid_files(iff),o_e_th%name,itau_w,entr_therm)
[951]1085        ENDIF
[945]1086
[1083]1087        IF (o_w_th%flag(iff)<=lev_files(iff)) THEN
1088        CALL histwrite_phy(nid_files(iff),o_w_th%name,itau_w,zw2)
[1028]1089        ENDIF
1090
[1083]1091        IF (o_q_th%flag(iff)<=lev_files(iff)) THEN
1092        CALL histwrite_phy(nid_files(iff),o_q_th%name,itau_w,zqasc)
[1028]1093        ENDIF
1094
[1083]1095        IF (o_lambda_th%flag(iff)<=lev_files(iff)) THEN
1096        CALL histwrite_phy(nid_files(iff),
1097     s                     o_lambda_th%name,itau_w,lambda_th)
[1028]1098        ENDIF
1099
[1083]1100        IF (o_a_th%flag(iff)<=lev_files(iff)) THEN
1101        CALL histwrite_phy(nid_files(iff),o_a_th%name,itau_w,fraca)
[1028]1102        ENDIF
1103
[1083]1104       IF (o_d_th%flag(iff)<=lev_files(iff)) THEN
1105       CALL histwrite_phy(nid_files(iff),o_d_th%name,itau_w,detr_therm)
[1028]1106       ENDIF
1107
[951]1108       ENDIF !iflag_thermals
[945]1109
[1083]1110       IF (o_f0_th%flag(iff)<=lev_files(iff)) THEN
1111      CALL histwrite_phy(nid_files(iff),o_f0_th%name,itau_w,f0)
[945]1112       ENDIF
1113
[1083]1114       IF (o_f0_th%flag(iff)<=lev_files(iff)) THEN
1115      CALL histwrite_phy(nid_files(iff),o_zmax_th%name,itau_w,zmax0)
[945]1116       ENDIF
1117
[1083]1118       IF (o_dqthe%flag(iff)<=lev_files(iff)) THEN
[907]1119      zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys
[1083]1120      CALL histwrite_phy(nid_files(iff),o_dqthe%name,itau_w,zx_tmp_fi3d)
[907]1121       ENDIF
1122
[1083]1123       IF (o_dtajs%flag(iff)<=lev_files(iff)) THEN
[907]1124      zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys
[1083]1125      CALL histwrite_phy(nid_files(iff),o_dtajs%name,itau_w,zx_tmp_fi3d)
[907]1126       ENDIF
1127
[1083]1128       IF (o_dqajs%flag(iff)<=lev_files(iff)) THEN
[907]1129      zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys
[1083]1130      CALL histwrite_phy(nid_files(iff),o_dqajs%name,itau_w,zx_tmp_fi3d)
[907]1131       ENDIF
1132
[1083]1133       IF (o_dtswr%flag(iff)<=lev_files(iff)) THEN
[907]1134      zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY
[1083]1135      CALL histwrite_phy(nid_files(iff),o_dtswr%name,itau_w,zx_tmp_fi3d)
[907]1136       ENDIF
1137
[1083]1138       IF (o_dtsw0%flag(iff)<=lev_files(iff)) THEN
[907]1139      zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)/RDAY
[1083]1140      CALL histwrite_phy(nid_files(iff),o_dtsw0%name,itau_w,zx_tmp_fi3d)
[907]1141       ENDIF
1142
[1083]1143       IF (o_dtlwr%flag(iff)<=lev_files(iff)) THEN
[907]1144      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY
[1083]1145      CALL histwrite_phy(nid_files(iff),o_dtlwr%name,itau_w,zx_tmp_fi3d)
[907]1146       ENDIF
1147
[1083]1148       IF (o_dtlw0%flag(iff)<=lev_files(iff)) THEN
[907]1149      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)/RDAY
[1083]1150      CALL histwrite_phy(nid_files(iff),o_dtlw0%name,itau_w,zx_tmp_fi3d)
[907]1151       ENDIF
1152
[1083]1153       IF (o_dtec%flag(iff)<=lev_files(iff)) THEN
[907]1154      zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)
[1083]1155      CALL histwrite_phy(nid_files(iff),o_dtec%name,itau_w,zx_tmp_fi3d)
[907]1156       ENDIF
1157
[1083]1158       IF (o_duvdf%flag(iff)<=lev_files(iff)) THEN
[907]1159      zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
[1083]1160      CALL histwrite_phy(nid_files(iff),o_duvdf%name,itau_w,zx_tmp_fi3d)
[907]1161       ENDIF
1162
[1083]1163       IF (o_dvvdf%flag(iff)<=lev_files(iff)) THEN
[907]1164      zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
[1083]1165      CALL histwrite_phy(nid_files(iff),o_dvvdf%name,itau_w,zx_tmp_fi3d)
[907]1166       ENDIF
1167
1168       IF (ok_orodr) THEN
[1083]1169      IF (o_duoro%flag(iff)<=lev_files(iff)) THEN
[907]1170      zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
[1083]1171      CALL histwrite_phy(nid_files(iff),o_duoro%name,itau_w,zx_tmp_fi3d)
[907]1172       ENDIF
1173
[1083]1174      IF (o_dvoro%flag(iff)<=lev_files(iff)) THEN
[907]1175      zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
[1083]1176      CALL histwrite_phy(nid_files(iff),o_dvoro%name,itau_w,zx_tmp_fi3d)
[907]1177      ENDIF
1178       ENDIF
1179
1180        IF (ok_orolf) THEN
[1083]1181       IF (o_dulif%flag(iff)<=lev_files(iff)) THEN
[907]1182      zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
[1083]1183      CALL histwrite_phy(nid_files(iff),o_dulif%name,itau_w,zx_tmp_fi3d)
[907]1184       ENDIF
1185
[1083]1186        IF (o_dvlif%flag(iff)<=lev_files(iff)) THEN
[907]1187      zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
[1083]1188      CALL histwrite_phy(nid_files(iff),o_dvlif%name,itau_w,zx_tmp_fi3d)
[907]1189       ENDIF
1190        ENDIF
1191
[1083]1192!       IF (o_trac%flag(iff)<=lev_files(iff)) THEN
[1114]1193         if (nqtot.GE.3) THEN
1194!           DO iq=3,nqtot
[1083]1195           DO iq=3,4
1196       IF (o_trac(iq-2)%flag(iff)<=lev_files(iff)) THEN
1197         CALL histwrite_phy(nid_files(iff),
1198     s                  o_trac(iq-2)%name,itau_w,qx(:,:,iq))
1199       ENDIF
[907]1200           ENDDO
[1083]1201         endif
[907]1202
1203      if (ok_sync) then
1204c$OMP MASTER
1205        call histsync(nid_files(iff))
1206c$OMP END MASTER
1207      endif
1208
1209       ENDIF ! clef_files
1210
1211      ENDDO ! iff=1,nfiles
Note: See TracBrowser for help on using the repository browser.