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

Last change on this file since 1578 was 1577, checked in by Laurent Fairhead, 13 years ago

Modifications au code qui permettent de commencer une simulation à n'importe
quelle heure de la journée. On fait toujours un nombre entier de jours de
simulation.
On spécifie cette heure de départ dans la variable starttime du run.def (la
valeur est en jour et elle est à zéro par défaut).
La valeur est sauvegardée dans le fichier restart.nc. Les valeurs lues dans
le fichier start et le run.def sont comparées en début de simulation. La
simulation s'arrête si elles ne sont pas égales sauf si une remise à zéro de
la date a été demandée.
Par ailleurs, la fréquence de lecture des conditions aux limites a été modifiée
pour qu'à chaque changement de jour, celles-ci soient mises à jour (jusqu'à
maintenant elles étaient mises à jour à une fréquence donnée qui, en cas de
départ de simulation à une heure différente de minuit, ne correspondait pas
forcèment à un changement dans la date).
Validation effectuée en traçant le flux solaire descendant au sommet de
l'atmosphère à différentes heures de la journée, après un redémarrage, en
s'assurant que le maximum est bien là où il est sensé être.


Modifications to the code to enable it to be started at any time of the day.
The code still runs for an integer number of days.
The start time is specified using variable starttime in the run.def file (the
value is in days and is zero by default).
The start time is saved in the restart.nc file at the end of the simulation.
The values read in from the start.nc file and the run.def file are compared
at the start of the simulation. If they differ, the simulation is aborted
unless the raz_date variable has been set.
Furthermore, the frequency at which boundary conditions are read in has been
modified so that they are updated everyday at midnight (until now, they were
updated at a certain frequency that, in case of a simulation starting at a time
other than midnight, did not ensure that those conditions would be updated each
day at midnight)
The modifications were validated by plotting the downward solaf flux at TOA at
different times of the day (and after having restarted the simulation) and
ensuring that the maximum of flux was at the right place according to local
time.

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