source: LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90 @ 3588

Last change on this file since 3588 was 3588, checked in by fhourdin, 5 years ago

On enleve temporairement la sortie d'une variable porbablement mal initialisee.

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:keywords set to Id
File size: 97.1 KB
Line 
1!
2! $Id: phys_output_write_mod.F90 3588 2019-10-16 03:25:43Z fhourdin $
3!
4MODULE phys_output_write_mod
5
6  USE phytrac_mod, ONLY : d_tr_cl, d_tr_th, d_tr_cv, d_tr_lessi_impa, &
7       d_tr_lessi_nucl, d_tr_insc, d_tr_bcscav, d_tr_evapls, d_tr_ls,  &
8       d_tr_trsp, d_tr_sscav, d_tr_sat, d_tr_uscav, flux_tr_dry
9
10  ! Author: Abderrahmane IDELKADI (original include file)
11  ! Author: Laurent FAIRHEAD (transformation to module/subroutine)
12  ! Author: Ulysse GERARD (effective implementation)
13
14CONTAINS
15
16  ! ug Routine pour définir (lors du premier passage) ET sortir les variables
17  SUBROUTINE phys_output_write(itap, pdtphys, paprs, pphis, &
18       pplay, lmax_th, aerosol_couple,         &
19       ok_ade, ok_aie, ok_volcan, ivap, iliq, isol, new_aod, ok_sync, &
20       ptconv, read_climoz, clevSTD, ptconvth, &
21       d_u, d_t, qx, d_qx, zmasse, flag_aerosol, flag_aerosol_strat, ok_cdnc)
22
23    ! This subroutine does the actual writing of diagnostics that were
24    ! defined and initialised in phys_output_mod.F90
25
26    USE dimphy, ONLY: klon, klev, klevp1
27    USE infotrac_phy, ONLY: nbtr
28    USE mod_phys_lmdz_para, ONLY: is_north_pole_phy,is_south_pole_phy
29    USE mod_grid_phy_lmdz, ONLY : nbp_lon, nbp_lat
30    USE time_phylmdz_mod, ONLY: day_step_phy, start_time, itau_phy
31    USE vertical_layers_mod, ONLY : ap, bp, aps, bps
32    USE phys_output_ctrlout_mod, ONLY: o_phis, o_aire, is_ter, is_lic, is_oce, &
33         o_longitude, o_latitude, &
34         o_Ahyb, o_Bhyb,o_Ahyb_bounds, o_Bhyb_bounds, &
35         o_Ahyb_mid, o_Bhyb_mid,o_Ahyb_mid_bounds, o_Bhyb_mid_bounds, &
36         is_ave, is_sic, o_contfracATM, o_contfracOR, &
37         o_aireTER, o_flat, o_slp, o_ptstar, o_pt0, o_tsol, &
38         o_t2m, o_t2m_min, o_t2m_max, &
39         o_t2m_min_mon, o_t2m_max_mon, &
40         o_q2m, o_ustar, o_u10m, o_v10m, &
41         o_wind10m, o_wind10max, o_gusts, o_sicf, &
42         o_psol, o_mass, o_qsurf, o_qsol, &
43         o_precip, o_rain_fall, o_rain_con, o_ndayrain, o_plul, o_pluc, o_plun, &
44         o_snow, o_msnow, o_fsnow, o_evap, o_ep,o_epmax_diag, & ! epmax_cape
45         o_tops, o_tops0, o_topl, o_topl0, &
46         o_SWupTOA, o_SWupTOAclr, o_SWupTOAcleanclr, o_SWdnTOA, &
47         o_SWdnTOAclr, o_nettop, o_SWup200, &
48         o_SWup200clr, o_SWdn200, o_SWdn200clr, &
49         o_LWup200, o_LWup200clr, o_LWdn200, &
50         o_LWdn200clr, o_sols, o_sols0, &
51         o_soll, o_radsol, o_soll0, o_SWupSFC, &
52         o_SWupSFCclr, o_SWupSFCcleanclr, o_SWdnSFC, o_SWdnSFCclr, o_SWdnSFCcleanclr, &
53         o_LWupSFC, o_LWdnSFC, o_LWupSFCclr, &
54         o_LWdnSFCclr, o_LWupTOAcleanclr, o_LWdnSFCcleanclr, o_bils, o_bils_diss, &
55         o_bils_ec,o_bils_ech, o_bils_tke, o_bils_kinetic, &
56         o_bils_latent, o_bils_enthalp, o_sens, &
57         o_fder, o_ffonte, o_fqcalving, o_fqfonte, o_mrroli, o_runofflic, &
58         o_taux, o_tauy, o_snowsrf, o_qsnow, &
59         o_snowhgt, o_toice, o_sissnow, o_runoff, &
60         o_albslw3, o_pourc_srf, o_fract_srf, &
61         o_taux_srf, o_tauy_srf, o_tsol_srf, &
62         o_evappot_srf, o_ustar_srf, o_u10m_srf, &
63         o_v10m_srf, o_t2m_srf, o_evap_srf, &
64         o_sens_srf, o_lat_srf, o_flw_srf, &
65         o_fsw_srf, o_wbils_srf, o_wbilo_srf, &
66         o_wevap_srf, o_wrain_srf, o_wsnow_srf, &
67         o_tke_srf, o_tke_max_srf,o_dltpbltke_srf, o_wstar, &
68         o_l_mixmin,o_l_mix, &
69         o_cdrm, o_cdrh, o_cldl, o_cldm, o_cldh, &
70         o_cldt, o_JrNt, o_cldljn, o_cldmjn, &
71         o_cldhjn, o_cldtjn, o_cldq, o_lwp, o_iwp, &
72         o_ue, o_ve, o_uq, o_vq, o_cape, o_pbase, &
73         o_uwat, o_vwat, &
74         o_ptop, o_fbase, o_plcl, o_plfc, &
75         o_wbeff, o_convoccur, o_cape_max, o_upwd, o_ep,o_epmax_diag, &
76         o_Mipsh, o_Ma, &
77         o_dnwd, o_dnwd0, o_ftime_deepcv, o_ftime_con, o_mc, &
78         o_prw, o_prlw, o_prsw, o_s_pblh, o_s_pblt, o_s_lcl, &
79         o_s_therm, o_uSTDlevs, o_vSTDlevs, &
80         o_wSTDlevs, o_zSTDlevs, o_qSTDlevs, &
81         o_tSTDlevs, epsfra, o_t_oce_sic, &
82         o_ale_bl, o_alp_bl, o_ale_wk, o_alp_wk, &
83         o_dtvdf_x    , o_dtvdf_w    , o_dqvdf_x    , o_dqvdf_w    , &
84         o_sens_x     , o_sens_w     , o_flat_x     , o_flat_w     , &
85         o_delta_tsurf, &
86         o_cdragh_x   , o_cdragh_w   , o_cdragm_x   , o_cdragm_w   , &
87         o_kh         , o_kh_x       , o_kh_w       , &
88         o_ale, o_alp, o_cin, o_WAPE, o_wake_h, o_cv_gen, o_wake_dens, &
89         o_wake_s, o_wake_deltat, o_wake_deltaq, &
90         o_wake_omg, o_dtwak, o_dqwak, o_dqwak2d, o_Vprecip, &
91         o_qtaa, o_Clwaa, &
92         o_ftd, o_fqd, o_wdtrainA, o_wdtrainS, o_wdtrainM, &
93         o_n2, o_s2, o_proba_notrig, &
94         o_random_notrig, o_ale_bl_stat, &
95         o_ale_bl_trig, o_alp_bl_det, &
96         o_alp_bl_fluct_m, o_alp_bl_fluct_tke, &
97         o_alp_bl_conv, o_alp_bl_stat, &
98         o_slab_qflux, o_tslab, o_slab_bils, &
99         o_slab_bilg, o_slab_sic, o_slab_tice, &
100         o_slab_hdiff, o_slab_ekman, o_slab_gm,  &
101         o_weakinv, o_dthmin, o_cldtau, &
102         o_cldemi, o_pr_con_l, o_pr_con_i, &
103         o_pr_lsc_l, o_pr_lsc_i, o_re, o_fl, &
104         o_rh2m, &
105         o_qsat2m, o_tpot, o_tpote, o_SWnetOR, &
106         o_LWdownOR, o_snowl, &
107         o_solldown, o_dtsvdfo, o_dtsvdft, &
108         o_dtsvdfg, o_dtsvdfi, o_z0m, o_z0h,  o_od443aer, o_od550aer, &
109         o_dryod550aer, o_od865aer, o_abs550aer, o_od550lt1aer, &
110         o_sconcso4, o_sconcno3, o_sconcoa, o_sconcbc, &
111         o_sconcss, o_sconcdust, o_concso4, o_concno3, &
112         o_concoa, o_concbc, o_concss, o_concdust, &
113         o_loadso4, o_loadoa, o_loadbc, o_loadss, &
114         o_loaddust, o_loadno3, o_tausumaero, &
115         o_drytausumaero, o_tausumaero_lw, &
116         o_topswad, o_topswad0, o_solswad, o_solswad0, &
117         o_toplwad, o_toplwad0, o_sollwad, o_sollwad0, &
118         o_swtoaas_nat, o_swsrfas_nat, &
119         o_swtoacs_nat, o_swtoaas_ant, &
120         o_swsrfas_ant, o_swtoacs_ant, &
121         o_swsrfcs_ant, o_swtoacf_nat, &
122         o_swsrfcf_nat, o_swtoacf_ant, &
123         o_swsrfcs_nat, o_swsrfcf_ant, &
124         o_swtoacf_zero, o_swsrfcf_zero, &
125         o_topswai, o_solswai, o_toplwai, o_sollwai, o_scdnc, &
126         o_cldncl, o_reffclws, o_reffclwc, o_solbnd, o_stratomask,&
127         o_cldnvi, o_lcc, o_lcc3d, o_lcc3dcon, &
128         o_lcc3dstra, o_icc3dcon, o_icc3dstra, &
129         o_cldicemxrat, o_cldwatmxrat, o_reffclwtop, o_ec550aer, &
130         o_lwcon, o_iwcon, o_temp, o_theta, &
131         o_ovapinit, o_ovap, o_oliq, o_ocond, o_geop, &
132         o_vitu, o_vitv, o_vitw, o_pres, o_paprs, &
133         o_zfull, o_zhalf, o_rneb, o_rnebjn, o_rnebcon, &
134         o_rnebls, o_rneblsvol, o_rhum, o_ozone, o_ozone_light, &
135         o_duphy, o_dtphy, o_dqphy, o_dqphy2d, o_dqlphy, o_dqlphy2d, &
136         o_dqsphy, o_dqsphy2d, o_albe_srf, o_z0m_srf, o_z0h_srf, &
137         o_ages_srf, o_snow_srf, o_alb1, o_alb2, o_tke, &
138         o_tke_max, o_kz, o_kz_max, o_clwcon, &
139         o_dtdyn, o_dqdyn, o_dqdyn2d, o_dqldyn, o_dqldyn2d, &
140         o_dqsdyn, o_dqsdyn2d, o_dudyn, o_dvdyn, &
141         o_dtcon, o_tntc, o_ducon, o_dvcon, &
142         o_dqcon, o_dqcon2d, o_tnhusc, o_tnhusc, o_dtlsc, &
143         o_dtlschr, o_dqlsc, o_dqlsc2d, o_beta_prec, &
144         o_dtlscth, o_dtlscst, o_dqlscth, o_dqlscth2d, &
145         o_dqlscst, o_dqlscst2d, o_plulth, o_plulst, &
146         o_ptconvth, o_lmaxth, o_dtvdf, &
147         o_dtdis, o_dqvdf, o_dqvdf2d, o_dteva, o_dqeva, o_dqeva2d, &
148         o_ptconv, o_ratqs, o_dtthe, &
149         o_duthe, o_dvthe, o_ftime_th, &
150         o_f_th, o_e_th, o_w_th, o_q_th, &
151         o_a_th, o_cloudth_sth, o_cloudth_senv, &
152         o_cloudth_sigmath, o_cloudth_sigmaenv, &
153         o_d_th, o_f0_th, o_zmax_th, &
154         o_dqthe, o_dqthe2d, o_dtajs, o_dqajs, o_dqajs2d, o_dtswr, &
155         o_dtsw0, o_dtlwr, o_dtlw0, o_dtec, &
156         o_duvdf, o_dvvdf, o_duoro, o_dvoro, &
157         o_dtoro, o_dulif, o_dvlif, o_dtlif, &
158         o_du_gwd_hines, o_dv_gwd_hines, o_dthin, o_dqch4, o_rsu, &
159         o_du_gwd_front, o_dv_gwd_front, &
160         o_east_gwstress, o_west_gwstress, &
161         o_rsd, o_rlu, o_rld, o_rsucs, o_rsdcs, o_rsucsaf, o_rsdcsaf, &
162         o_rlucs, o_rldcs, o_tnt, o_tntr, &
163         o_tntscpbl, o_tnhus, o_tnhusscpbl, &
164         o_evu, o_h2o, o_mcd, o_dmc, o_ref_liq, &
165         o_ref_ice, o_rsut4co2, o_rlut4co2, &
166         o_rsutcs4co2, o_rlutcs4co2, o_rsu4co2, &
167         o_rlu4co2, o_rsucs4co2, o_rlucs4co2, &
168         o_rsd4co2, o_rld4co2, o_rsdcs4co2, &
169         o_rldcs4co2, o_tnondef, o_ta, o_zg, &
170         o_hus, o_hur, o_ua, o_va, o_wap, &
171         o_psbg, o_tro3, o_tro3_daylight, &
172         o_uxv, o_vxq, o_vxT, o_wxq, o_vxphi, &
173         o_wxT, o_uxu, o_vxv, o_TxT, o_trac, &
174#ifdef REPROBUS
175         o_nas, &
176#endif
177         o_dtr_vdf, o_dtr_the, o_dtr_con, &
178         o_dtr_lessi_impa, o_dtr_lessi_nucl, &
179         o_dtr_insc, o_dtr_bcscav, o_dtr_evapls, &
180         o_dtr_ls, o_dtr_trsp, o_dtr_sscav, o_dtr_dry, &
181         o_dtr_sat, o_dtr_uscav, o_trac_cum, o_du_gwd_rando, o_dv_gwd_rando, &
182         o_ustr_gwd_hines,o_vstr_gwd_hines,o_ustr_gwd_rando,o_vstr_gwd_rando, &
183         o_ustr_gwd_front,o_vstr_gwd_front, &
184         o_sens_prec_liq_oce, o_sens_prec_liq_sic, &
185         o_sens_prec_sol_oce, o_sens_prec_sol_sic, &
186         o_lat_prec_liq_oce, o_lat_prec_liq_sic, &
187         o_lat_prec_sol_oce, o_lat_prec_sol_sic, &
188         o_sza, &
189! Marine
190         o_map_prop_hc, o_map_prop_hist, o_map_emis_hc, o_map_iwp_hc, &
191         o_map_deltaz_hc, o_map_pcld_hc, o_map_tcld_hc, &
192         o_map_emis_hist, o_map_iwp_hist, o_map_deltaz_hist, &
193         o_map_rad_hist, &
194         o_map_emis_Cb, o_map_pcld_Cb, o_map_tcld_Cb, &
195         o_map_emis_ThCi, o_map_pcld_ThCi, o_map_tcld_ThCi, &
196         o_map_emis_Anv, o_map_pcld_Anv, o_map_tcld_Anv, &
197         o_map_ntot, o_map_hc,o_map_hist,o_map_Cb,o_map_ThCi,o_map_Anv, &
198         o_alt_tropo, &
199! Tropopause
200         o_p_tropopause, o_z_tropopause, o_t_tropopause,  &
201         o_col_O3_strato, o_col_O3_tropo,                 &
202!--interactive CO2
203         o_flx_co2_ocean, o_flx_co2_land, o_flx_co2_ff, o_flx_co2_bb
204
205
206#ifdef CPP_StratAer
207    USE phys_output_ctrlout_mod, ONLY:  &
208         o_budg_3D_nucl, o_budg_3D_cond_evap, o_budg_3D_ocs_to_so2, o_budg_3D_so2_to_h2so4, &
209         o_budg_sed_part, o_R2SO4, o_OCS_lifetime, o_SO2_lifetime, &
210         o_budg_3D_backgr_ocs, o_budg_3D_backgr_so2, &
211         o_budg_dep_dry_ocs, o_budg_dep_wet_ocs, &
212         o_budg_dep_dry_so2, o_budg_dep_wet_so2, &
213         o_budg_dep_dry_h2so4, o_budg_dep_wet_h2so4, &
214         o_budg_dep_dry_part, o_budg_dep_wet_part, &
215         o_budg_emi_ocs, o_budg_emi_so2, o_budg_emi_h2so4, o_budg_emi_part, &
216         o_budg_ocs_to_so2, o_budg_so2_to_h2so4, o_budg_h2so4_to_part, &
217         o_surf_PM25_sulf, o_ext_strat_550, o_tau_strat_550, &
218         o_vsed_aer, o_tau_strat_1020, o_ext_strat_1020, o_f_r_wet
219#endif
220   
221    USE phys_output_ctrlout_mod, ONLY: o_heat_volc, o_cool_volc !NL
222    USE phys_state_var_mod, ONLY: heat_volc, cool_volc !NL
223
224    USE phys_state_var_mod, ONLY: pctsrf, rain_fall, snow_fall, &
225         qsol, z0m, z0h, fevap, agesno, &
226         nday_rain, rain_con, snow_con, &
227         topsw, toplw, toplw0, swup, swdn, &
228         topsw0, swupc0, swdnc0, swup0, swdn0, SWup200, SWup200clr, &
229         SWdn200, SWdn200clr, LWup200, LWup200clr, &
230         LWdn200, LWdn200clr, solsw, solsw0, sollw, &
231         radsol, swradcorr, sollw0, sollwdown, sollw, gustiness, &
232         sollwdownclr, lwdnc0, lwdn0, ftsol, ustar, u10m, &
233         v10m, pbl_tke, wake_delta_pbl_TKE, &
234         delta_tsurf, &
235         wstar, cape, ema_pcb, ema_pct, &
236         ema_cbmf, Mipsh, Ma, fm_therm, ale_bl, alp_bl, ale, &
237         alp, cin, wake_pe, wake_dens, wake_s, wake_deltat, &
238         wake_deltaq, ftd, fqd, ale_bl_trig, albsol1, &
239         ale_wake, ale_bl_stat, &
240         rnebcon, wo, falb1, albsol2, coefh, clwcon0, &
241         ratqs, entr_therm, zqasc, detr_therm, f0, &
242         lwup, lwdn, lwupc0, lwup0, coefm, &
243         swupp, lwupp, swupc0p, swup0p, lwupc0p, lwup0p, swdnp, lwdnp, &
244         swdnc0p, swdn0p, lwdnc0p, lwdn0p, tnondef, O3sumSTD, uvsumSTD, &
245         vqsumSTD, vTsumSTD, O3daysumSTD, wqsumSTD, &
246         vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, &
247         T2sumSTD, nlevSTD, du_gwd_rando, du_gwd_front, &
248         ulevSTD, vlevSTD, wlevSTD, philevSTD, qlevSTD, tlevSTD, &
249         rhlevSTD, O3STD, O3daySTD, uvSTD, vqSTD, vTSTD, wqSTD, &
250         vphiSTD, wTSTD, u2STD, v2STD, T2STD, missing_val_nf90
251
252    USE phys_local_var_mod, ONLY: zxfluxlat, slp, ptstar, pt0, zxtsol, zt2m, &
253         zt2m_cor,zq2m_cor,zu10m_cor,zv10m_cor, zrh2m_cor, zqsat2m_cor, &
254         t2m_min_mon, t2m_max_mon, evap, &
255         l_mixmin,l_mix, &
256         zu10m, zv10m, zq2m, zustar, zxqsurf, &
257         rain_lsc, rain_num, snow_lsc, bils, sens, fder, &
258         zxffonte, zxfqcalving, zxfqfonte, zxrunofflic, fluxu, &
259         fluxv, zxsnow, qsnow, snowhgt, to_ice, &
260         sissnow, runoff, albsol3_lic, evap_pot, &
261         t2m, fluxt, fluxlat, fsollw, fsolsw, &
262         wfbils, wfbilo, wfevap, wfrain, wfsnow, &
263         cdragm, cdragh, cldl, cldm, &
264         cldh, cldt, JrNt, cldljn, cldmjn, cldhjn, &
265         cldtjn, cldq, flwp, fiwp, ue, ve, uq, vq, &
266         uwat, vwat, &
267         plcl, plfc, wbeff, convoccur, upwd, dnwd, dnwd0, prw, prlw, prsw, &
268         s_pblh, s_pblt, s_lcl, s_therm, uwriteSTD, &
269         vwriteSTD, wwriteSTD, phiwriteSTD, qwriteSTD, &
270         twriteSTD, alp_wake, &
271!!         dtvdf_x    ,dtvdf_w    ,dqvdf_x    ,dqvdf_w    , &
272         d_t_vdf_x    ,d_t_vdf_w    ,d_q_vdf_x    ,d_q_vdf_w    , &
273         sens_x     ,sens_w     ,zxfluxlat_x,zxfluxlat_w, &
274         cdragh_x   ,cdragh_w   ,cdragm_x   ,cdragm_w   , &
275         kh         ,kh_x       ,kh_w       , &
276         cv_gen, wake_h, &
277         wake_omg, d_t_wake, d_q_wake, Vprecip, qtaa, Clw, &
278         wdtrainA, wdtrainS, wdtrainM, n2, s2, proba_notrig, &
279         random_notrig, &
280         alp_bl_det, alp_bl_fluct_m, alp_bl_conv, &
281         alp_bl_stat, alp_bl_fluct_tke, slab_wfbils, &
282         weak_inversion, dthmin, cldtau, cldemi, &
283         pmflxr, pmflxs, prfl, psfl, re, fl, rh2m, &
284         qsat2m, tpote, tpot, d_ts, od443aer, od550aer, dryod550aer, &
285         od865aer, abs550aer, od550lt1aer, sconcso4, sconcno3, &
286         sconcoa, sconcbc, sconcss, sconcdust, concso4, concno3, &
287         concoa, concbc, concss, concdust, loadso4, &
288         loadoa, loadbc, loadss, loaddust, loadno3, tausum_aero, drytausum_aero, &
289         topswad_aero, topswad0_aero, solswad_aero, &
290         solswad0_aero, topsw_aero, solsw_aero, &
291         topsw0_aero, solsw0_aero, topswcf_aero, &
292         solswcf_aero, topswai_aero, solswai_aero, &
293         toplwad_aero, toplwad0_aero, sollwad_aero, &
294         sollwad0_aero, toplwai_aero, sollwai_aero, &
295         scdnc, cldncl, reffclws, reffclwc, cldnvi, stratomask,&
296         lcc, lcc3d, lcc3dcon, lcc3dstra, &
297         icc3dcon, icc3dstra, zfice, reffclwtop, &
298         ec550aer, flwc, fiwc, t_seri, theta, q_seri, &
299         ql_seri, qs_seri, tr_seri, &
300         zphi, u_seri, v_seri, omega, cldfra, &
301         rneb, rnebjn, rneblsvol, zx_rh, d_t_dyn,  &
302         d_q_dyn,  d_ql_dyn, d_qs_dyn, &
303         d_q_dyn2d,  d_ql_dyn2d, d_qs_dyn2d, &
304         d_u_dyn, d_v_dyn, d_t_con, d_t_ajsb, d_t_ajs, &
305         d_u_ajs, d_v_ajs, &
306         d_u_con, d_v_con, d_q_con, d_q_ajs, d_t_lsc, &
307         d_t_lwr,d_t_lw0,d_t_swr,d_t_sw0, &
308         d_t_eva, d_q_lsc, beta_prec, d_t_lscth, &
309         d_t_lscst, d_q_lscth, d_q_lscst, plul_th, &
310         plul_st, d_t_vdf, d_t_diss, d_q_vdf, d_q_eva, &
311         zw2, fraca, zmax_th, d_q_ajsb, d_t_ec, d_u_vdf, &
312         d_v_vdf, d_u_oro, d_v_oro, d_t_oro, d_u_lif, &
313         d_v_lif, d_t_lif, du_gwd_hines, dv_gwd_hines, d_t_hin, &
314         dv_gwd_rando, dv_gwd_front, &
315         east_gwstress, west_gwstress, &
316         d_q_ch4, pmfd, pmfu, ref_liq, ref_ice, rhwriteSTD, &
317         ep, epmax_diag, &  ! epmax_cape
318         p_tropopause, t_tropopause, z_tropopause
319
320#ifdef CPP_StratAer
321    USE phys_local_var_mod, ONLY:  &
322         budg_3D_nucl, budg_3D_cond_evap, budg_3D_ocs_to_so2, budg_3D_so2_to_h2so4, &
323         budg_sed_part, R2SO4, OCS_lifetime, SO2_lifetime, &
324         budg_3D_backgr_ocs, budg_3D_backgr_so2, &
325         budg_dep_dry_ocs, budg_dep_wet_ocs, &
326         budg_dep_dry_so2, budg_dep_wet_so2, &
327         budg_dep_dry_h2so4, budg_dep_wet_h2so4, &
328         budg_dep_dry_part, budg_dep_wet_part, &
329         budg_emi_ocs, budg_emi_so2, budg_emi_h2so4, budg_emi_part, &
330         budg_ocs_to_so2, budg_so2_to_h2so4, budg_h2so4_to_part, &
331         surf_PM25_sulf, tau_strat_550, tausum_strat, &
332         vsed_aer, tau_strat_1020, f_r_wet
333#endif
334
335#ifdef REPROBUS
336    USE CHEM_REP, ONLY : nas, nbnas, tnamenas, ttextnas
337#endif
338
339    USE carbon_cycle_mod, ONLY: fco2_ff, fco2_bb, fco2_land, fco2_ocean
340
341    USE phys_output_var_mod, ONLY: vars_defined, snow_o, zfra_o, bils_diss, &
342         bils_ec,bils_ech, bils_tke, bils_kinetic, bils_latent, bils_enthalp, &
343         itau_con, nfiles, clef_files, nid_files, dryaod_diag, &
344         zustr_gwd_hines, zvstr_gwd_hines,zustr_gwd_rando, zvstr_gwd_rando, &
345         zustr_gwd_front, zvstr_gwd_front, sza_o,    &
346         sens_prec_liq_o, sens_prec_sol_o, lat_prec_liq_o, lat_prec_sol_o, &
347         cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv, &
348! Marine
349         map_prop_hc, map_prop_hist, &
350         map_emis_hc,map_iwp_hc,map_deltaz_hc,&
351         map_pcld_hc,map_tcld_hc,&
352         map_emis_hist,map_iwp_hist,map_deltaz_hist,&
353         map_rad_hist,&
354         map_ntot,map_hc,map_hist,&
355         map_Cb,map_ThCi,map_Anv,&
356         map_emis_Cb,map_pcld_Cb,map_tcld_Cb,&
357         map_emis_ThCi,map_pcld_ThCi,map_tcld_ThCi,&
358         map_emis_Anv,map_pcld_Anv,map_tcld_Anv, &
359         alt_tropo, &
360!Ionela
361         ok_4xCO2atm
362
363    USE ocean_slab_mod, ONLY: nslay, tslab, slab_bilg, tice, seaice, &
364        slab_ekman,slab_hdiff,slab_gm,dt_ekman, dt_hdiff, dt_gm, dt_qflux
365    USE pbl_surface_mod, ONLY: snow
366    USE indice_sol_mod, ONLY: nbsrf
367    USE infotrac_phy, ONLY: nqtot, nqo, type_trac, tname, niadv
368    USE geometry_mod, ONLY: cell_area, latitude_deg, longitude_deg
369    USE surface_data, ONLY: type_ocean, version_ocean, ok_veget, ok_snow
370    USE aero_mod, ONLY: naero_tot, id_STRAT_phy
371    USE ioipsl, ONLY: histend, histsync
372    USE iophy, ONLY: set_itau_iophy, histwrite_phy
373    USE netcdf, ONLY: nf90_fill_real
374    USE print_control_mod, ONLY: prt_level,lunout
375
376
377#ifdef CPP_XIOS
378    ! ug Pour les sorties XIOS
379    USE xios
380    USE wxios, ONLY: wxios_closedef, missing_val, wxios_set_context
381#endif
382    USE phys_cal_mod, ONLY : mth_len
383
384#ifdef CPP_RRTM
385    USE YOESW, ONLY : RSUN
386#endif
387    USE tracinca_mod, ONLY: config_inca
388
389    IMPLICIT NONE
390
391    INCLUDE "clesphys.h"
392    INCLUDE "thermcell.h"
393    INCLUDE "compbl.h"
394    INCLUDE "YOMCST.h"
395
396    ! Input
397    INTEGER :: itap, ivap, iliq, isol, read_climoz
398    INTEGER, DIMENSION(klon) :: lmax_th
399    LOGICAL :: aerosol_couple, ok_sync
400    LOGICAL :: ok_ade, ok_aie, ok_volcan, new_aod
401    LOGICAL, DIMENSION(klon, klev) :: ptconv, ptconvth
402    REAL :: pdtphys
403    CHARACTER (LEN=4), DIMENSION(nlevSTD) :: clevSTD
404    REAL, DIMENSION(klon,nlevSTD) :: zx_tmp_fi3d_STD
405    REAL, DIMENSION(klon) :: pphis
406    REAL, DIMENSION(klon, klev) :: pplay, d_u, d_t
407    REAL, DIMENSION(klon, klev+1) :: paprs
408    REAL, DIMENSION(klon,klev,nqtot) :: qx, d_qx
409    REAL, DIMENSION(klon, klev) :: zmasse
410    INTEGER :: flag_aerosol_strat
411    INTEGER :: flag_aerosol
412    LOGICAL :: ok_cdnc
413    REAL, DIMENSION(3) :: freq_moyNMC
414
415    ! Local
416    INTEGER :: itau_w
417    INTEGER :: i, iinit, iinitend=1, iff, iq, iiq, nsrf, k, ll, naero
418    REAL, DIMENSION (klon) :: zx_tmp_fi2d, zpt_conv2d
419    REAL, DIMENSION (klon,klev) :: zx_tmp_fi3d, zpt_conv
420    REAL, DIMENSION (klon,klev+1) :: zx_tmp_fi3d1
421    REAL, DIMENSION (klon,NSW) :: zx_tmp_fi3dsp
422    CHARACTER (LEN=4)              :: bb2
423    INTEGER, DIMENSION(nbp_lon*nbp_lat)  :: ndex2d
424    INTEGER, DIMENSION(nbp_lon*nbp_lat*klev) :: ndex3d
425    REAL, PARAMETER :: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2
426!   REAL, PARAMETER :: missing_val=nf90_fill_real
427    REAL, DIMENSION(klev+1,2) :: Ahyb_bounds, Bhyb_bounds
428    REAL, DIMENSION(klev,2) :: Ahyb_mid_bounds, Bhyb_mid_bounds
429    INTEGER :: ilev
430#ifndef CPP_XIOS
431    REAL :: missing_val
432#endif
433    REAL, PARAMETER :: un_jour=86400.
434    INTEGER ISW
435    CHARACTER*1 ch1
436    CHARACTER*20 varname
437
438#ifdef CPP_XIOS
439    TYPE(xios_fieldgroup) :: group_handle
440    TYPE(xios_field) :: child
441#endif
442#ifdef CPP_StratAer
443    LOGICAL, PARAMETER :: debug_strataer=.FALSE.
444#endif
445
446    ! On calcul le nouveau tau:
447    itau_w = itau_phy + itap
448    ! On le donne à iophy pour que les histwrite y aient accès:
449    CALL set_itau_iophy(itau_w)
450
451 !   IF (.NOT.vars_defined) THEN
452       iinitend = 1
453 !   ELSE
454 !      iinitend = 1
455 !   ENDIF
456
457#ifdef CPP_XIOS
458    CALL wxios_set_context
459#endif
460
461    Ahyb_bounds(1,1) = 0.
462    Ahyb_bounds(1,2) = aps(1)
463    Bhyb_bounds(1,1) = 1.
464    Bhyb_bounds(1,2) = bps(1)   
465    DO ilev=2,klev
466      Ahyb_bounds(ilev,1) = aps(ilev-1)
467      Ahyb_bounds(ilev,2) = aps(ilev)
468      Bhyb_bounds(ilev,1) = bps(ilev-1)
469      Bhyb_bounds(ilev,2) = bps(ilev)
470    ENDDO
471     Ahyb_bounds(klev+1,1) = aps(klev)
472     Ahyb_bounds(klev+1,2) = 0.
473     Bhyb_bounds(klev+1,1) = bps(klev)
474     Bhyb_bounds(klev+1,2) = 0.
475
476    DO ilev=1, klev
477      Ahyb_mid_bounds(ilev,1) = ap(ilev)
478      Ahyb_mid_bounds(ilev,2) = ap(ilev+1)
479      Bhyb_mid_bounds(ilev,1) = bp(ilev)
480      Bhyb_mid_bounds(ilev,2) = bp(ilev+1)
481    END DO
482
483#ifdef CPP_XIOS
484#ifdef CPP_StratAer
485!$OMP MASTER
486   IF (.NOT.vars_defined) THEN
487          !On ajoute les variables 3D traceurs par l interface fortran
488          CALL xios_get_handle("fields_strataer_trac_3D", group_handle)
489          ! On boucle sur les traceurs pour les ajouter au groupe puis fixer les attributs
490          DO iq=nqo+1, nqtot
491            iiq=niadv(iq)
492            varname=trim(tname(iiq))
493            WRITE (lunout,*) 'XIOS var=', nqo, iq, nqtot, varname
494            CALL xios_add_child(group_handle, child, varname)
495            CALL xios_set_attr(child, name=varname, unit="kg kg-1")
496            varname='d'//trim(tname(iiq))//'_vdf'
497            CALL xios_add_child(group_handle, child, varname)
498            CALL xios_set_attr(child, name=varname, unit="kg kg-1 s-1")
499            varname='d'//trim(tname(iiq))//'_the'
500            CALL xios_add_child(group_handle, child, varname)
501            CALL xios_set_attr(child, name=varname, unit="kg kg-1 s-1")
502            varname='d'//trim(tname(iiq))//'_con'
503            CALL xios_add_child(group_handle, child, varname)
504            CALL xios_set_attr(child, name=varname, unit="kg kg-1 s-1")
505            varname='d'//trim(tname(iiq))//'_lessi_impa'
506            CALL xios_add_child(group_handle, child, varname)
507            CALL xios_set_attr(child, name=varname, unit="kg kg-1 s-1")
508            varname='d'//trim(tname(iiq))//'_lessi_nucl'
509            CALL xios_add_child(group_handle, child, varname)
510            CALL xios_set_attr(child, name=varname, unit="kg kg-1 s-1")
511            varname='d'//trim(tname(iiq))//'_insc'
512            CALL xios_add_child(group_handle, child, varname)
513            CALL xios_set_attr(child, name=varname, unit="kg kg-1 s-1")
514            varname='d'//trim(tname(iiq))//'_bcscav'
515            CALL xios_add_child(group_handle, child, varname)
516            CALL xios_set_attr(child, name=varname, unit="kg kg-1 s-1")
517            varname='d'//trim(tname(iiq))//'_evapls'
518            CALL xios_add_child(group_handle, child, varname)
519            CALL xios_set_attr(child, name=varname, unit="kg kg-1 s-1")
520            varname='d'//trim(tname(iiq))//'_ls'
521            CALL xios_add_child(group_handle, child, varname)
522            CALL xios_set_attr(child, name=varname, unit="kg kg-1 s-1")
523            varname='d'//trim(tname(iiq))//'_trsp'
524            CALL xios_add_child(group_handle, child, varname)
525            CALL xios_set_attr(child, name=varname, unit="kg kg-1 s-1")
526            varname='d'//trim(tname(iiq))//'_sscav'
527            CALL xios_add_child(group_handle, child, varname)
528            CALL xios_set_attr(child, name=varname, unit="kg kg-1 s-1")
529            varname='d'//trim(tname(iiq))//'_sat'
530            CALL xios_add_child(group_handle, child, varname)
531            CALL xios_set_attr(child, name=varname, unit="kg kg-1 s-1")
532            varname='d'//trim(tname(iiq))//'_uscav'
533            CALL xios_add_child(group_handle, child, varname)
534            CALL xios_set_attr(child, name=varname, unit="kg kg-1 s-1")
535          ENDDO
536          !On ajoute les variables 2D traceurs par l interface fortran
537          CALL xios_get_handle("fields_strataer_trac_2D", group_handle)
538          ! On boucle sur les traceurs pour les ajouter au groupe puis fixer les attributs
539          DO iq=nqo+1, nqtot
540            iiq=niadv(iq)
541            varname='cum'//trim(tname(iiq))
542            WRITE (lunout,*) 'XIOS var=', iq, nqtot, varname
543            CALL xios_add_child(group_handle, child, varname)
544            CALL xios_set_attr(child, name=varname, unit="kg m-2")
545            varname='cumd'//trim(tname(iiq))//'_dry'
546            CALL xios_add_child(group_handle, child, varname)
547            CALL xios_set_attr(child, name=varname, unit="kg m-2 s-1")
548          ENDDO
549    ENDIF
550!$OMP END MASTER
551#endif
552#endif
553    ! ug la boucle qui suit ne sert qu'une fois, pour l'initialisation, sinon il n'y a toujours qu'un seul passage:
554    DO iinit=1, iinitend
555!      print *,'IFF iinit=', iinit, iinitend
556#ifdef CPP_XIOS
557       !$OMP MASTER
558       IF (vars_defined) THEN
559          IF (prt_level >= 10) then
560             write(lunout,*)"phys_output_write: call xios_update_calendar, itau_w=",itau_w
561          ENDIF
562!          CALL xios_update_calendar(itau_w)
563          CALL xios_update_calendar(itap)
564       ENDIF
565       !$OMP END MASTER
566       !$OMP BARRIER
567#endif
568       ! On procède à l'écriture ou à la définition des nombreuses variables:
569!!! Champs 1D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
570       CALL histwrite_phy(o_phis, pphis)
571
572       zx_tmp_fi2d = cell_area
573       IF (is_north_pole_phy) then
574         zx_tmp_fi2d(1) = cell_area(1)/nbp_lon
575       ENDIF
576       IF (is_south_pole_phy) then
577         zx_tmp_fi2d(klon) = cell_area(klon)/nbp_lon
578       ENDIf
579       CALL histwrite_phy(o_aire, zx_tmp_fi2d)
580
581       IF (vars_defined) THEN
582          DO i=1, klon
583             zx_tmp_fi2d(i)=pctsrf(i,is_ter)+pctsrf(i,is_lic)
584          ENDDO
585       ENDIF
586
587       CALL histwrite_phy(o_contfracATM, zx_tmp_fi2d)
588       CALL histwrite_phy(o_contfracOR, pctsrf(:,is_ter))
589!
590#ifdef CPP_XIOS
591       CALL histwrite_phy("R_ecc",R_ecc)
592       CALL histwrite_phy("R_peri",R_peri)
593       CALL histwrite_phy("R_incl",R_incl)
594       CALL histwrite_phy("solaire",solaire)
595       CALL histwrite_phy(o_Ahyb, ap)
596       CALL histwrite_phy(o_Bhyb, bp)
597       CALL histwrite_phy(o_Ahyb_bounds, Ahyb_bounds)
598       CALL histwrite_phy(o_Bhyb_bounds, Bhyb_bounds)
599       CALL histwrite_phy(o_Ahyb_mid, aps)
600       CALL histwrite_phy(o_Bhyb_mid, bps)
601       CALL histwrite_phy(o_Ahyb_mid_bounds, Ahyb_mid_bounds)
602       CALL histwrite_phy(o_Bhyb_mid_bounds, Bhyb_mid_bounds)
603       CALL histwrite_phy(o_longitude, longitude_deg)
604       CALL histwrite_phy(o_latitude, latitude_deg)
605!
606#ifdef CPP_RRTM
607      IF (iflag_rrtm.EQ.1) THEN
608        DO ISW=1, NSW
609          WRITE(ch1,'(i1)') ISW
610!         zx_tmp_0d=RSUN(ISW)
611!         CALL histwrite_phy("rsun"//ch1,zx_tmp_0d)
612          CALL histwrite_phy("rsun"//ch1,RSUN(ISW))
613        ENDDO
614      ENDIF
615#endif
616!
617       CALL histwrite_phy("co2_ppm",co2_ppm)
618       CALL histwrite_phy("CH4_ppb",CH4_ppb)
619       CALL histwrite_phy("N2O_ppb",N2O_ppb)
620       CALL histwrite_phy("CFC11_ppt",CFC11_ppt)
621       CALL histwrite_phy("CFC12_ppt",CFC12_ppt)
622!
623#endif
624
625!!! Champs 2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
626! Simulateur AIRS
627     IF (ok_airs) then
628      CALL histwrite_phy(o_alt_tropo,alt_tropo)
629 
630      CALL histwrite_phy(o_map_prop_hc,map_prop_hc)
631      CALL histwrite_phy(o_map_prop_hist,map_prop_hist)
632
633      CALL histwrite_phy(o_map_emis_hc,map_emis_hc)
634      CALL histwrite_phy(o_map_iwp_hc,map_iwp_hc)
635      CALL histwrite_phy(o_map_deltaz_hc,map_deltaz_hc)
636      CALL histwrite_phy(o_map_pcld_hc,map_pcld_hc)
637      CALL histwrite_phy(o_map_tcld_hc,map_tcld_hc)
638
639      CALL histwrite_phy(o_map_emis_hist,map_emis_hist)
640      CALL histwrite_phy(o_map_iwp_hist,map_iwp_hist)
641      CALL histwrite_phy(o_map_deltaz_hist,map_deltaz_hist)
642
643      CALL histwrite_phy(o_map_ntot,map_ntot)
644      CALL histwrite_phy(o_map_hc,map_hc)
645      CALL histwrite_phy(o_map_hist,map_hist)
646
647      CALL histwrite_phy(o_map_Cb,map_Cb)
648      CALL histwrite_phy(o_map_ThCi,map_ThCi)
649      CALL histwrite_phy(o_map_Anv,map_Anv)
650
651      CALL histwrite_phy(o_map_emis_Cb,map_emis_Cb)
652      CALL histwrite_phy(o_map_pcld_Cb,map_pcld_Cb)
653      CALL histwrite_phy(o_map_tcld_Cb,map_tcld_Cb)
654
655      CALL histwrite_phy(o_map_emis_ThCi,map_emis_ThCi)
656      CALL histwrite_phy(o_map_pcld_ThCi,map_pcld_ThCi)
657      CALL histwrite_phy(o_map_tcld_ThCi,map_tcld_ThCi)
658
659      CALL histwrite_phy(o_map_emis_Anv,map_emis_Anv)
660      CALL histwrite_phy(o_map_pcld_Anv,map_pcld_Anv)
661      CALL histwrite_phy(o_map_tcld_Anv,map_tcld_Anv)
662     ENDIF
663
664       CALL histwrite_phy(o_sza, sza_o)
665       CALL histwrite_phy(o_flat, zxfluxlat)
666       CALL histwrite_phy(o_ptstar, ptstar)
667       CALL histwrite_phy(o_pt0, pt0)
668       CALL histwrite_phy(o_slp, slp)
669       CALL histwrite_phy(o_tsol, zxtsol)
670       CALL histwrite_phy(o_t2m, zt2m_cor)
671       CALL histwrite_phy(o_t2m_min, zt2m_cor)
672       CALL histwrite_phy(o_t2m_max, zt2m_cor)
673       CALL histwrite_phy(o_t2m_max_mon, t2m_max_mon)
674       CALL histwrite_phy(o_t2m_min_mon, t2m_min_mon)
675
676       IF (vars_defined) THEN
677          DO i=1, klon
678             zx_tmp_fi2d(i)=SQRT(zu10m_cor(i)*zu10m_cor(i)+zv10m_cor(i)*zv10m_cor(i))
679          ENDDO
680       ENDIF
681       CALL histwrite_phy(o_wind10m, zx_tmp_fi2d)
682
683       IF (vars_defined) THEN
684          DO i=1, klon
685             zx_tmp_fi2d(i)=SQRT(zu10m_cor(i)*zu10m_cor(i)+zv10m_cor(i)*zv10m_cor(i))
686          ENDDO
687       ENDIF
688       CALL histwrite_phy(o_wind10max, zx_tmp_fi2d)
689
690       CALL histwrite_phy(o_gusts, gustiness)
691
692       IF (vars_defined) THEN
693          DO i = 1, klon
694             zx_tmp_fi2d(i) = pctsrf(i,is_sic)
695          ENDDO
696       ENDIF
697       CALL histwrite_phy(o_sicf, zx_tmp_fi2d)
698       CALL histwrite_phy(o_q2m, zq2m_cor)
699       CALL histwrite_phy(o_ustar, zustar)
700       CALL histwrite_phy(o_u10m, zu10m_cor)
701       CALL histwrite_phy(o_v10m, zv10m_cor)
702
703       IF (vars_defined) THEN
704          DO i = 1, klon
705             zx_tmp_fi2d(i) = paprs(i,1)
706          ENDDO
707       ENDIF
708       CALL histwrite_phy(o_psol, zx_tmp_fi2d)
709       CALL histwrite_phy(o_mass, zmasse)
710       CALL histwrite_phy(o_qsurf, zxqsurf)
711
712       IF (.NOT. ok_veget) THEN
713          CALL histwrite_phy(o_qsol, qsol)
714       ENDIF
715
716       IF (vars_defined) THEN
717          DO i = 1, klon
718             zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
719          ENDDO
720       ENDIF
721
722       CALL histwrite_phy(o_precip, zx_tmp_fi2d)
723       CALL histwrite_phy(o_rain_fall, rain_fall)
724       CALL histwrite_phy(o_ndayrain, nday_rain)
725
726       ! epmax_cape:
727!       CALL histwrite_phy(o_epmax_diag, epmax_diag)
728       CALL histwrite_phy(o_ep, ep)
729
730       IF (vars_defined) THEN
731          DO i = 1, klon
732             zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i)
733          ENDDO
734       ENDIF
735       CALL histwrite_phy(o_plul, zx_tmp_fi2d)
736       CALL histwrite_phy(o_plun, rain_num)
737
738       IF (vars_defined) THEN
739          DO i = 1, klon
740             zx_tmp_fi2d(i) = rain_con(i) + snow_con(i)
741          ENDDO
742       ENDIF
743       CALL histwrite_phy(o_pluc, zx_tmp_fi2d)
744       CALL histwrite_phy(o_rain_con, rain_con)
745       CALL histwrite_phy(o_snow, snow_fall)
746       CALL histwrite_phy(o_msnow, zxsnow)
747       CALL histwrite_phy(o_fsnow, zfra_o)
748       CALL histwrite_phy(o_evap, evap)
749
750       IF (vars_defined) THEN
751         zx_tmp_fi2d = topsw*swradcorr
752       ENDIF
753       CALL histwrite_phy(o_tops, zx_tmp_fi2d)
754
755       IF (vars_defined) THEN
756         zx_tmp_fi2d = topsw0*swradcorr
757       ENDIF
758       CALL histwrite_phy(o_tops0, zx_tmp_fi2d)
759
760       CALL histwrite_phy(o_topl, toplw)
761       CALL histwrite_phy(o_topl0, toplw0)
762
763       IF (vars_defined) THEN
764          zx_tmp_fi2d(:) = swup(:,klevp1)*swradcorr(:)
765       ENDIF
766       CALL histwrite_phy(o_SWupTOA, zx_tmp_fi2d)
767
768       IF (vars_defined) THEN
769          zx_tmp_fi2d(:) = swup0(:,klevp1)*swradcorr(:)
770       ENDIF
771       CALL histwrite_phy(o_SWupTOAclr, zx_tmp_fi2d)
772
773       IF (vars_defined) THEN
774          zx_tmp_fi2d(:) = swupc0(:,klevp1)*swradcorr(:)
775       ENDIF
776       CALL histwrite_phy(o_SWupTOAcleanclr, zx_tmp_fi2d)
777
778       IF (vars_defined) THEN
779          zx_tmp_fi2d(:) = swdn(:,klevp1)*swradcorr(:)
780       ENDIF
781       CALL histwrite_phy(o_SWdnTOA, zx_tmp_fi2d)
782
783       IF (vars_defined) THEN
784          zx_tmp_fi2d(:) = swdn0(:,klevp1)*swradcorr(:)
785       ENDIF
786       CALL histwrite_phy(o_SWdnTOAclr, zx_tmp_fi2d)
787
788       IF (vars_defined) THEN
789          zx_tmp_fi2d(:) = topsw(:)*swradcorr(:)-toplw(:)
790       ENDIF
791       CALL histwrite_phy(o_nettop, zx_tmp_fi2d)
792       
793       IF (vars_defined) THEN
794          zx_tmp_fi2d = SWup200*swradcorr
795       ENDIF
796       CALL histwrite_phy(o_SWup200, zx_tmp_fi2d)
797       
798       IF (vars_defined) THEN
799          zx_tmp_fi2d = SWup200clr*swradcorr
800       ENDIF
801       CALL histwrite_phy(o_SWup200clr, zx_tmp_fi2d)
802       
803       IF (vars_defined) THEN
804          zx_tmp_fi2d = SWdn200*swradcorr
805       ENDIF
806       CALL histwrite_phy(o_SWdn200, zx_tmp_fi2d)
807       
808       
809       IF (vars_defined) THEN
810          zx_tmp_fi2d = SWdn200clr*swradcorr
811       ENDIF
812       CALL histwrite_phy(o_SWdn200clr, zx_tmp_fi2d)
813       
814       CALL histwrite_phy(o_LWup200, LWup200)
815       CALL histwrite_phy(o_LWup200clr, LWup200clr)
816       CALL histwrite_phy(o_LWdn200, LWdn200)
817       CALL histwrite_phy(o_LWdn200clr, LWdn200clr)
818       
819       IF (vars_defined) THEN
820          zx_tmp_fi2d = solsw*swradcorr
821       ENDIF
822       CALL histwrite_phy(o_sols, zx_tmp_fi2d)
823       
824       
825       IF (vars_defined) THEN
826          zx_tmp_fi2d = solsw0*swradcorr
827       ENDIF
828       CALL histwrite_phy(o_sols0, zx_tmp_fi2d)
829       CALL histwrite_phy(o_soll, sollw)
830       CALL histwrite_phy(o_soll0, sollw0)
831       CALL histwrite_phy(o_radsol, radsol)
832
833       IF (vars_defined) THEN
834          zx_tmp_fi2d(:) = swup(:,1)*swradcorr(:)
835       ENDIF
836       CALL histwrite_phy(o_SWupSFC, zx_tmp_fi2d)
837
838       IF (vars_defined) THEN
839          zx_tmp_fi2d(:) = swup0(:,1)*swradcorr(:)
840       ENDIF
841       CALL histwrite_phy(o_SWupSFCclr, zx_tmp_fi2d)
842
843       IF (vars_defined) THEN
844          zx_tmp_fi2d(:) = swupc0(:,1)*swradcorr(:)
845       ENDIF
846       CALL histwrite_phy(o_SWupSFCcleanclr, zx_tmp_fi2d)
847
848       IF (vars_defined) THEN
849          zx_tmp_fi2d(:) = swdn(:,1)*swradcorr(:)
850       ENDIF
851       CALL histwrite_phy(o_SWdnSFC, zx_tmp_fi2d)
852
853       IF (vars_defined) THEN
854          zx_tmp_fi2d(:) = swdn0(:,1)*swradcorr(:)
855       ENDIF
856       CALL histwrite_phy(o_SWdnSFCclr, zx_tmp_fi2d)
857
858       IF (vars_defined) THEN
859          zx_tmp_fi2d(:) = swdnc0(:,1)*swradcorr(:)
860       ENDIF
861       CALL histwrite_phy(o_SWdnSFCcleanclr, zx_tmp_fi2d)
862
863       IF (vars_defined) THEN
864          zx_tmp_fi2d(:)=sollwdown(:)-sollw(:)
865       ENDIF
866       CALL histwrite_phy(o_LWupSFC, zx_tmp_fi2d)
867       CALL histwrite_phy(o_LWdnSFC, sollwdown)
868
869       IF (vars_defined) THEN
870          sollwdownclr(1:klon) = -1.*lwdn0(1:klon,1)
871          zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon)
872       ENDIF
873       CALL histwrite_phy(o_LWupSFCclr, zx_tmp_fi2d)
874       CALL histwrite_phy(o_LWdnSFCclr, sollwdownclr)
875
876       IF (vars_defined) THEN
877          zx_tmp_fi2d(:) = lwupc0(:,klevp1)
878       ENDIF
879       CALL histwrite_phy(o_LWupTOAcleanclr, zx_tmp_fi2d)
880       IF (vars_defined) THEN
881          zx_tmp_fi2d(:) = -1.*lwdnc0(:,1)
882       ENDIF
883       CALL histwrite_phy(o_LWdnSFCcleanclr, zx_tmp_fi2d)
884
885       CALL histwrite_phy(o_bils, bils)
886       CALL histwrite_phy(o_bils_diss, bils_diss)
887       CALL histwrite_phy(o_bils_ec, bils_ec)
888       CALL histwrite_phy(o_bils_ech, bils_ech)
889       CALL histwrite_phy(o_bils_tke, bils_tke)
890       CALL histwrite_phy(o_bils_kinetic, bils_kinetic)
891       CALL histwrite_phy(o_bils_latent, bils_latent)
892       CALL histwrite_phy(o_bils_enthalp, bils_enthalp)
893
894       IF (vars_defined) THEN
895          zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
896       ENDIF
897       CALL histwrite_phy(o_sens, zx_tmp_fi2d)
898       CALL histwrite_phy(o_fder, fder)
899       CALL histwrite_phy(o_ffonte, zxffonte)
900       CALL histwrite_phy(o_fqcalving, zxfqcalving)
901       CALL histwrite_phy(o_fqfonte, zxfqfonte)
902       IF (vars_defined) THEN
903          zx_tmp_fi2d(1:klon)=(zxfqfonte(1:klon)+rain_fall(1:klon))*pctsrf(1:klon,is_lic)
904       ENDIF
905       CALL histwrite_phy(o_mrroli, zx_tmp_fi2d)
906       CALL histwrite_phy(o_runofflic, zxrunofflic)
907       IF (vars_defined) THEN
908          zx_tmp_fi2d=0.
909          DO nsrf=1,nbsrf
910             zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxu(:,1,nsrf)
911          ENDDO
912       ENDIF
913       CALL histwrite_phy(o_taux, zx_tmp_fi2d)
914
915       IF (vars_defined) THEN
916          zx_tmp_fi2d=0.
917          DO nsrf=1,nbsrf
918             zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxv(:,1,nsrf)
919          ENDDO
920       ENDIF
921       CALL histwrite_phy(o_tauy, zx_tmp_fi2d)
922
923       IF (ok_snow) THEN
924          CALL histwrite_phy(o_snowsrf, snow_o)
925          CALL histwrite_phy(o_qsnow, qsnow)
926          CALL histwrite_phy(o_snowhgt,snowhgt)
927          CALL histwrite_phy(o_toice,to_ice)
928          CALL histwrite_phy(o_sissnow,sissnow)
929          CALL histwrite_phy(o_runoff,runoff)
930          CALL histwrite_phy(o_albslw3,albsol3_lic)
931       ENDIF
932
933       DO nsrf = 1, nbsrf
934
935          IF (vars_defined)             zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
936          CALL histwrite_phy(o_pourc_srf(nsrf), zx_tmp_fi2d)
937          IF (vars_defined)           zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
938          CALL histwrite_phy(o_fract_srf(nsrf), zx_tmp_fi2d)
939          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
940          CALL histwrite_phy(o_taux_srf(nsrf), zx_tmp_fi2d)
941          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
942          CALL histwrite_phy(o_tauy_srf(nsrf), zx_tmp_fi2d)
943          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
944          CALL histwrite_phy(o_tsol_srf(nsrf), zx_tmp_fi2d)
945          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = evap_pot( 1 : klon, nsrf)
946          CALL histwrite_phy(o_evappot_srf(nsrf), zx_tmp_fi2d)
947          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = ustar(1 : klon, nsrf)
948          CALL histwrite_phy(o_ustar_srf(nsrf), zx_tmp_fi2d)
949          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = u10m(1 : klon, nsrf)
950          CALL histwrite_phy(o_u10m_srf(nsrf), zx_tmp_fi2d)
951          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = v10m(1 : klon, nsrf)
952          CALL histwrite_phy(o_v10m_srf(nsrf), zx_tmp_fi2d)
953          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = t2m(1 : klon, nsrf)
954          CALL histwrite_phy(o_t2m_srf(nsrf), zx_tmp_fi2d)
955          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fevap(1 : klon, nsrf)
956          CALL histwrite_phy(o_evap_srf(nsrf), zx_tmp_fi2d)
957          IF (vars_defined)        zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
958          CALL histwrite_phy(o_sens_srf(nsrf), zx_tmp_fi2d)
959          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
960          CALL histwrite_phy(o_lat_srf(nsrf), zx_tmp_fi2d)
961          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf)
962          CALL histwrite_phy(o_flw_srf(nsrf), zx_tmp_fi2d)
963          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf)
964          CALL histwrite_phy(o_fsw_srf(nsrf), zx_tmp_fi2d)
965          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf)
966          CALL histwrite_phy(o_wbils_srf(nsrf), zx_tmp_fi2d)
967          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfbilo( 1 : klon, nsrf)
968          CALL histwrite_phy(o_wbilo_srf(nsrf), zx_tmp_fi2d)
969          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfevap( 1 : klon, nsrf)
970          CALL histwrite_phy(o_wevap_srf(nsrf), zx_tmp_fi2d)
971          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfrain( 1 : klon, nsrf)
972          CALL histwrite_phy(o_wrain_srf(nsrf), zx_tmp_fi2d)
973          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfsnow( 1 : klon, nsrf)
974          CALL histwrite_phy(o_wsnow_srf(nsrf), zx_tmp_fi2d)
975
976          IF (iflag_pbl > 1) THEN
977             CALL histwrite_phy(o_tke_srf(nsrf),  pbl_tke(:,1:klev,nsrf))
978             !CALL histwrite_phy(o_l_mix(nsrf),  l_mix(:,1:klev,nsrf))
979             CALL histwrite_phy(o_l_mixmin(nsrf),  l_mixmin(:,1:klev,nsrf))
980             CALL histwrite_phy(o_tke_max_srf(nsrf),  pbl_tke(:,1:klev,nsrf))
981          ENDIF
982!jyg<
983          IF (iflag_pbl > 1 .AND. iflag_wake>=1  .AND. iflag_pbl_split >=1) THEN
984             CALL histwrite_phy(o_dltpbltke_srf(nsrf), wake_delta_pbl_TKE(:,1:klev,nsrf))
985          ENDIF
986!>jyg
987!          IF (iflag_pbl > 1 .AND. ifl_pbltree  >=1 ) THEN
988!       CALL histwrite_phy(o_treedrg_srf(nsrf), treedrg(:,1:klev,nsrf))
989!            ENDIF
990
991
992       ENDDO
993
994       IF (vars_defined) zx_tmp_fi2d(1 : klon) = sens_prec_liq_o(1 : klon, 1)
995       CALL histwrite_phy(o_sens_prec_liq_oce, zx_tmp_fi2d)       
996       IF (vars_defined) zx_tmp_fi2d(1 : klon) = sens_prec_liq_o(1 : klon, 2)
997       CALL histwrite_phy(o_sens_prec_liq_sic, zx_tmp_fi2d)       
998       IF (vars_defined) zx_tmp_fi2d(1 : klon) = sens_prec_sol_o(1 : klon, 1)
999       CALL histwrite_phy(o_sens_prec_sol_oce, zx_tmp_fi2d)       
1000       IF (vars_defined) zx_tmp_fi2d(1 : klon) = sens_prec_sol_o(1 : klon, 2)
1001       CALL histwrite_phy(o_sens_prec_sol_sic, zx_tmp_fi2d)       
1002
1003       IF (vars_defined) zx_tmp_fi2d(1 : klon) = lat_prec_liq_o(1 : klon, 1)
1004       CALL histwrite_phy(o_lat_prec_liq_oce, zx_tmp_fi2d)       
1005       IF (vars_defined) zx_tmp_fi2d(1 : klon) = lat_prec_liq_o(1 : klon, 2)
1006       CALL histwrite_phy(o_lat_prec_liq_sic, zx_tmp_fi2d)       
1007       IF (vars_defined) zx_tmp_fi2d(1 : klon) = lat_prec_sol_o(1 : klon, 1)
1008       CALL histwrite_phy(o_lat_prec_sol_oce, zx_tmp_fi2d)       
1009       IF (vars_defined) zx_tmp_fi2d(1 : klon) = lat_prec_sol_o(1 : klon, 2)
1010       CALL histwrite_phy(o_lat_prec_sol_sic, zx_tmp_fi2d)       
1011
1012       DO nsrf=1,nbsrf+1
1013          CALL histwrite_phy(o_wstar(nsrf), wstar(1 : klon, nsrf))
1014       ENDDO
1015
1016       CALL histwrite_phy(o_cdrm, cdragm)
1017       CALL histwrite_phy(o_cdrh, cdragh)
1018       CALL histwrite_phy(o_cldl, cldl)
1019       CALL histwrite_phy(o_cldm, cldm)
1020       CALL histwrite_phy(o_cldh, cldh)
1021       CALL histwrite_phy(o_cldt, cldt)
1022       CALL histwrite_phy(o_JrNt, JrNt)
1023       
1024       IF (vars_defined)  zx_tmp_fi2d=cldl*JrNt     
1025       CALL histwrite_phy(o_cldljn, zx_tmp_fi2d)
1026       
1027       IF (vars_defined)  zx_tmp_fi2d=cldm*JrNt     
1028       CALL histwrite_phy(o_cldmjn, zx_tmp_fi2d)
1029       
1030       IF (vars_defined)  zx_tmp_fi2d=cldh*JrNt
1031       CALL histwrite_phy(o_cldhjn, zx_tmp_fi2d)
1032       
1033       IF (vars_defined)  zx_tmp_fi2d=cldt*JrNt
1034       CALL histwrite_phy(o_cldtjn, zx_tmp_fi2d)
1035       
1036       CALL histwrite_phy(o_cldq, cldq)
1037       IF (vars_defined)       zx_tmp_fi2d(1:klon) = flwp(1:klon)
1038       CALL histwrite_phy(o_lwp, zx_tmp_fi2d)
1039       IF (vars_defined)       zx_tmp_fi2d(1:klon) = fiwp(1:klon)
1040       CALL histwrite_phy(o_iwp, zx_tmp_fi2d)
1041       CALL histwrite_phy(o_ue, ue)
1042       CALL histwrite_phy(o_ve, ve)
1043       CALL histwrite_phy(o_uq, uq)
1044       CALL histwrite_phy(o_vq, vq)
1045       CALL histwrite_phy(o_uwat, uwat)
1046       CALL histwrite_phy(o_vwat, vwat)
1047       IF (iflag_con.GE.3) THEN ! sb
1048          CALL histwrite_phy(o_cape, cape)
1049          CALL histwrite_phy(o_pbase, ema_pcb)
1050          CALL histwrite_phy(o_ptop, ema_pct)
1051          CALL histwrite_phy(o_fbase, ema_cbmf)
1052          IF (iflag_con /= 30) THEN
1053             CALL histwrite_phy(o_plcl, plcl)
1054             CALL histwrite_phy(o_plfc, plfc)
1055             CALL histwrite_phy(o_wbeff, wbeff)
1056             CALL histwrite_phy(o_convoccur, convoccur)
1057          ENDIF
1058
1059          CALL histwrite_phy(o_cape_max, cape)
1060
1061          CALL histwrite_phy(o_upwd, upwd)
1062          CALL histwrite_phy(o_Ma, Ma)
1063          CALL histwrite_phy(o_dnwd, dnwd)
1064          CALL histwrite_phy(o_dnwd0, dnwd0)
1065          !! The part relative to the frequency of occurence of convection
1066          !! is now grouped with the part relative to thermals and shallow
1067          !! convection (output of the 3 fields: ftime_deepcv, ftime_th and
1068          !!  ftime_con).
1069          IF (vars_defined) THEN
1070             IF (iflag_thermals>=1)THEN
1071                zx_tmp_fi3d=-dnwd+dnwd0+upwd+fm_therm(:,1:klev)
1072             ELSE
1073                zx_tmp_fi3d=-dnwd+dnwd0+upwd
1074             ENDIF
1075          ENDIF
1076          CALL histwrite_phy(o_mc, zx_tmp_fi3d)
1077       ENDIF !iflag_con .GE. 3
1078       CALL histwrite_phy(o_prw, prw)
1079       CALL histwrite_phy(o_prlw, prlw)
1080       CALL histwrite_phy(o_prsw, prsw)
1081       CALL histwrite_phy(o_s_pblh, s_pblh)
1082       CALL histwrite_phy(o_s_pblt, s_pblt)
1083       CALL histwrite_phy(o_s_lcl, s_lcl)
1084       CALL histwrite_phy(o_s_therm, s_therm)
1085       !IM : Les champs suivants (s_capCL, s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F
1086       !       IF (o_s_capCL%flag(iff)<=lev_files(iff)) THEN
1087       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1088       !    $o_s_capCL%name,itau_w,s_capCL)
1089       !       ENDIF
1090       !       IF (o_s_oliqCL%flag(iff)<=lev_files(iff)) THEN
1091       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1092       !    $o_s_oliqCL%name,itau_w,s_oliqCL)
1093       !       ENDIF
1094       !       IF (o_s_cteiCL%flag(iff)<=lev_files(iff)) THEN
1095       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1096       !    $o_s_cteiCL%name,itau_w,s_cteiCL)
1097       !       ENDIF
1098       !       IF (o_s_trmb1%flag(iff)<=lev_files(iff)) THEN
1099       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1100       !    $o_s_trmb1%name,itau_w,s_trmb1)
1101       !       ENDIF
1102       !       IF (o_s_trmb2%flag(iff)<=lev_files(iff)) THEN
1103       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1104       !    $o_s_trmb2%name,itau_w,s_trmb2)
1105       !       ENDIF
1106       !       IF (o_s_trmb3%flag(iff)<=lev_files(iff)) THEN
1107       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1108       !    $o_s_trmb3%name,itau_w,s_trmb3)
1109       !       ENDIF
1110
1111#ifdef CPP_IOIPSL
1112#ifndef CPP_XIOS
1113  IF (.NOT.ok_all_xml) THEN
1114       ! ATTENTION, LES ANCIENS HISTWRITE ONT ETES CONSERVES EN ATTENDANT MIEUX:
1115       ! Champs interpolles sur des niveaux de pression
1116       missing_val=missing_val_nf90
1117       DO iff=1, nfiles
1118          ll=0
1119          DO k=1, nlevSTD
1120             bb2=clevSTD(k)
1121             IF (bb2.EQ."850".OR.bb2.EQ."700".OR. &
1122                  bb2.EQ."500".OR.bb2.EQ."200".OR. &
1123                  bb2.EQ."100".OR. &
1124                  bb2.EQ."50".OR.bb2.EQ."10") THEN
1125
1126                ! a refaire correctement !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1127                ll=ll+1
1128                CALL histwrite_phy(o_uSTDlevs(ll),uwriteSTD(:,k,iff), iff)
1129                CALL histwrite_phy(o_vSTDlevs(ll),vwriteSTD(:,k,iff), iff)
1130                CALL histwrite_phy(o_wSTDlevs(ll),wwriteSTD(:,k,iff), iff)
1131                CALL histwrite_phy(o_zSTDlevs(ll),phiwriteSTD(:,k,iff), iff)
1132                CALL histwrite_phy(o_qSTDlevs(ll),qwriteSTD(:,k,iff), iff)
1133                CALL histwrite_phy(o_tSTDlevs(ll),twriteSTD(:,k,iff), iff)
1134
1135             ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
1136          ENDDO
1137       ENDDO
1138  ENDIF
1139#endif
1140#endif
1141#ifdef CPP_XIOS
1142  IF (ok_all_xml) THEN
1143!XIOS  CALL xios_get_field_attr("u850",default_value=missing_val)
1144!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1145          ll=0
1146          DO k=1, nlevSTD
1147             bb2=clevSTD(k)
1148             IF (bb2.EQ."850".OR.bb2.EQ."700".OR. &
1149                bb2.EQ."500".OR.bb2.EQ."200".OR. &
1150                bb2.EQ."100".OR. &
1151                bb2.EQ."50".OR.bb2.EQ."10") THEN
1152                ll=ll+1
1153                CALL histwrite_phy(o_uSTDlevs(ll),ulevSTD(:,k))
1154                CALL histwrite_phy(o_vSTDlevs(ll),vlevSTD(:,k))
1155                CALL histwrite_phy(o_wSTDlevs(ll),wlevSTD(:,k))
1156                CALL histwrite_phy(o_zSTDlevs(ll),philevSTD(:,k))
1157                CALL histwrite_phy(o_qSTDlevs(ll),qlevSTD(:,k))
1158                CALL histwrite_phy(o_tSTDlevs(ll),tlevSTD(:,k))
1159             ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
1160          ENDDO
1161  ENDIF
1162#endif
1163       IF (vars_defined) THEN
1164          DO i=1, klon
1165             IF (pctsrf(i,is_oce).GT.epsfra.OR. &
1166                  pctsrf(i,is_sic).GT.epsfra) THEN
1167                zx_tmp_fi2d(i) = (ftsol(i, is_oce) * pctsrf(i,is_oce)+ &
1168                     ftsol(i, is_sic) * pctsrf(i,is_sic))/ &
1169                     (pctsrf(i,is_oce)+pctsrf(i,is_sic))
1170             ELSE
1171                zx_tmp_fi2d(i) = 273.15
1172             ENDIF
1173          ENDDO
1174       ENDIF
1175       CALL histwrite_phy(o_t_oce_sic, zx_tmp_fi2d)
1176
1177       ! Couplage convection-couche limite
1178       IF (iflag_con.GE.3) THEN
1179          IF (iflag_coupl>=1) THEN
1180             CALL histwrite_phy(o_ale_bl, ale_bl)
1181             CALL histwrite_phy(o_alp_bl, alp_bl)
1182          ENDIF !iflag_coupl>=1
1183       ENDIF !(iflag_con.GE.3)
1184       ! Wakes
1185       IF (iflag_con.EQ.3) THEN
1186          CALL histwrite_phy(o_Mipsh, Mipsh)
1187          IF (iflag_wake>=1) THEN
1188             CALL histwrite_phy(o_ale_wk, ale_wake)
1189             CALL histwrite_phy(o_alp_wk, alp_wake)
1190             IF (iflag_pbl_split>=1) THEN
1191!!               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=dtvdf_x(1:klon,1:klev)/pdtphys
1192!!               CALL histwrite_phy(o_dtvdf_x    ,zx_tmp_fi3d)
1193!!               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=dtvdf_w(1:klon,1:klev)/pdtphys
1194!!               CALL histwrite_phy(o_dtvdf_w    ,zx_tmp_fi3d)
1195!!               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=dqvdf_x(1:klon,1:klev)/pdtphys
1196!!               CALL histwrite_phy(o_dqvdf_x    ,zx_tmp_fi3d)
1197!!               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=dqvdf_w(1:klon,1:klev)/pdtphys
1198!
1199               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf_x(1:klon,1:klev)/pdtphys
1200               CALL histwrite_phy(o_dtvdf_x    ,zx_tmp_fi3d)
1201               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf_w(1:klon,1:klev)/pdtphys
1202               CALL histwrite_phy(o_dtvdf_w    ,zx_tmp_fi3d)
1203               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf_x(1:klon,1:klev)/pdtphys
1204               CALL histwrite_phy(o_dqvdf_x    ,zx_tmp_fi3d)
1205               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf_w(1:klon,1:klev)/pdtphys
1206!
1207               CALL histwrite_phy(o_dqvdf_w    ,zx_tmp_fi3d)
1208               CALL histwrite_phy(o_sens_x     ,sens_x     )
1209               CALL histwrite_phy(o_sens_w     ,sens_w     )
1210               CALL histwrite_phy(o_flat_x     ,zxfluxlat_x)
1211               CALL histwrite_phy(o_flat_w     ,zxfluxlat_w)
1212               CALL histwrite_phy(o_delta_tsurf,delta_tsurf)
1213               CALL histwrite_phy(o_cdragh_x   ,cdragh_x   )
1214               CALL histwrite_phy(o_cdragh_w   ,cdragh_w   )
1215               CALL histwrite_phy(o_cdragm_x   ,cdragm_x   )
1216               CALL histwrite_phy(o_cdragm_w   ,cdragm_w   )
1217               CALL histwrite_phy(o_kh         ,kh         )
1218               CALL histwrite_phy(o_kh_x       ,kh_x       )
1219               CALL histwrite_phy(o_kh_w       ,kh_w       )
1220             ENDIF   ! (iflag_pbl_split>=1)
1221             CALL histwrite_phy(o_ale, ale)
1222             CALL histwrite_phy(o_alp, alp)
1223             CALL histwrite_phy(o_cin, cin)
1224             CALL histwrite_phy(o_WAPE, wake_pe)
1225             CALL histwrite_phy(o_cv_gen, cv_gen)
1226             CALL histwrite_phy(o_wake_h, wake_h)
1227             CALL histwrite_phy(o_wake_dens, wake_dens)
1228             CALL histwrite_phy(o_wake_s, wake_s)
1229             CALL histwrite_phy(o_wake_deltat, wake_deltat)
1230             CALL histwrite_phy(o_wake_deltaq, wake_deltaq)
1231             CALL histwrite_phy(o_wake_omg, wake_omg)
1232             IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_wake(1:klon,1:klev) &
1233                  /pdtphys
1234             CALL histwrite_phy(o_dtwak, zx_tmp_fi3d)
1235             IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_wake(1:klon,1:klev)/pdtphys
1236             CALL histwrite_phy(o_dqwak, zx_tmp_fi3d)
1237             IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
1238             CALL histwrite_phy(o_dqwak2d, zx_tmp_fi2d)
1239          ENDIF ! iflag_wake>=1
1240          CALL histwrite_phy(o_ftd, ftd)
1241          CALL histwrite_phy(o_fqd, fqd)
1242       ENDIF !(iflag_con.EQ.3)
1243       IF (iflag_con.EQ.3.OR.iflag_con.EQ.30) THEN
1244          ! sortie RomP convection descente insaturee iflag_con=30
1245          ! etendue a iflag_con=3 (jyg)
1246          CALL histwrite_phy(o_Vprecip, Vprecip)
1247          CALL histwrite_phy(o_qtaa, qtaa)
1248          CALL histwrite_phy(o_clwaa, clw)
1249          CALL histwrite_phy(o_wdtrainA, wdtrainA)
1250          CALL histwrite_phy(o_wdtrainS, wdtrainS)
1251          CALL histwrite_phy(o_wdtrainM, wdtrainM)
1252       ENDIF !(iflag_con.EQ.3.or.iflag_con.EQ.30)
1253!!! nrlmd le 10/04/2012
1254       IF (iflag_trig_bl>=1) THEN
1255          CALL histwrite_phy(o_n2, n2)
1256          CALL histwrite_phy(o_s2, s2)
1257          CALL histwrite_phy(o_proba_notrig, proba_notrig)
1258          CALL histwrite_phy(o_random_notrig, random_notrig)
1259          CALL histwrite_phy(o_ale_bl_stat, ale_bl_stat)
1260          CALL histwrite_phy(o_ale_bl_trig, ale_bl_trig)
1261       ENDIF  !(iflag_trig_bl>=1)
1262       IF (iflag_clos_bl>=1) THEN
1263          CALL histwrite_phy(o_alp_bl_det, alp_bl_det)
1264          CALL histwrite_phy(o_alp_bl_fluct_m, alp_bl_fluct_m)
1265          CALL histwrite_phy(o_alp_bl_fluct_tke,  &
1266               alp_bl_fluct_tke)
1267          CALL histwrite_phy(o_alp_bl_conv, alp_bl_conv)
1268          CALL histwrite_phy(o_alp_bl_stat, alp_bl_stat)
1269       ENDIF  !(iflag_clos_bl>=1)
1270!!! fin nrlmd le 10/04/2012
1271       ! Output of slab ocean variables
1272       IF (type_ocean=='slab ') THEN
1273          CALL histwrite_phy(o_slab_bils, slab_wfbils)
1274          IF (nslay.EQ.1) THEN
1275              zx_tmp_fi2d(:)=tslab(:,1)
1276              CALL histwrite_phy(o_tslab, zx_tmp_fi2d)
1277              zx_tmp_fi2d(:)=dt_qflux(:,1)
1278              CALL histwrite_phy(o_slab_qflux, zx_tmp_fi2d)
1279          ELSE
1280              CALL histwrite_phy(o_tslab, tslab(:,1:nslay))
1281              CALL histwrite_phy(o_slab_qflux, dt_qflux(:,1:nslay))
1282          ENDIF
1283          IF (version_ocean=='sicINT') THEN
1284              CALL histwrite_phy(o_slab_bilg, slab_bilg)
1285              CALL histwrite_phy(o_slab_tice, tice)
1286              CALL histwrite_phy(o_slab_sic, seaice)
1287          ENDIF
1288          IF (slab_gm) THEN
1289             CALL histwrite_phy(o_slab_gm, dt_gm(:,1:nslay))
1290          ENDIF
1291          IF (slab_hdiff) THEN
1292            IF (nslay.EQ.1) THEN
1293                zx_tmp_fi2d(:)=dt_hdiff(:,1)
1294                CALL histwrite_phy(o_slab_hdiff, zx_tmp_fi2d)
1295            ELSE
1296                CALL histwrite_phy(o_slab_hdiff, dt_hdiff(:,1:nslay))
1297            ENDIF
1298          ENDIF
1299          IF (slab_ekman.GT.0) THEN
1300            IF (nslay.EQ.1) THEN
1301                zx_tmp_fi2d(:)=dt_ekman(:,1)
1302                CALL histwrite_phy(o_slab_ekman, zx_tmp_fi2d)
1303            ELSE
1304                CALL histwrite_phy(o_slab_ekman, dt_ekman(:,1:nslay))
1305            ENDIF
1306          ENDIF
1307       ENDIF !type_ocean == force/slab
1308       CALL histwrite_phy(o_weakinv, weak_inversion)
1309       CALL histwrite_phy(o_dthmin, dthmin)
1310       CALL histwrite_phy(o_cldtau, cldtau)
1311       CALL histwrite_phy(o_cldemi, cldemi)
1312       CALL histwrite_phy(o_pr_con_l, pmflxr(:,1:klev))
1313       CALL histwrite_phy(o_pr_con_i, pmflxs(:,1:klev))
1314       CALL histwrite_phy(o_pr_lsc_l, prfl(:,1:klev))
1315       CALL histwrite_phy(o_pr_lsc_i, psfl(:,1:klev))
1316       CALL histwrite_phy(o_re, re)
1317       CALL histwrite_phy(o_fl, fl)
1318       IF (vars_defined) THEN
1319          DO i=1, klon
1320             zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
1321          ENDDO
1322       ENDIF
1323       CALL histwrite_phy(o_rh2m, zx_tmp_fi2d)
1324
1325!       IF (vars_defined) THEN
1326!          DO i=1, klon
1327!             zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
1328!          ENDDO
1329!       ENDIF
1330!       CALL histwrite_phy(o_rh2m_min, zx_tmp_fi2d)
1331
1332!       IF (vars_defined) THEN
1333!          DO i=1, klon
1334!             zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
1335!          ENDDO
1336!       ENDIF
1337!       CALL histwrite_phy(o_rh2m_max, zx_tmp_fi2d)
1338
1339       CALL histwrite_phy(o_qsat2m, zqsat2m_cor)
1340       CALL histwrite_phy(o_tpot, tpot)
1341       CALL histwrite_phy(o_tpote, tpote)
1342       IF (vars_defined) zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, is_ter)
1343       CALL histwrite_phy(o_SWnetOR,  zx_tmp_fi2d)
1344       CALL histwrite_phy(o_LWdownOR, sollwdown)
1345       CALL histwrite_phy(o_snowl, snow_lsc)
1346       CALL histwrite_phy(o_solldown, sollwdown)
1347       CALL histwrite_phy(o_dtsvdfo, d_ts(:,is_oce))
1348       CALL histwrite_phy(o_dtsvdft, d_ts(:,is_ter))
1349       CALL histwrite_phy(o_dtsvdfg,  d_ts(:,is_lic))
1350       CALL histwrite_phy(o_dtsvdfi, d_ts(:,is_sic))
1351       CALL histwrite_phy(o_z0m, z0m(:,nbsrf+1))
1352       CALL histwrite_phy(o_z0h, z0h(:,nbsrf+1))
1353
1354       ! od550 per species
1355!--OLIVIER
1356!This is warranted by treating INCA aerosols as offline aerosols
1357!       IF (new_aod .and. (.not. aerosol_couple)) THEN
1358       IF (new_aod) THEN
1359          IF (flag_aerosol.GT.0) THEN
1360             CALL histwrite_phy(o_od443aer, od443aer)
1361             CALL histwrite_phy(o_od550aer, od550aer)
1362             CALL histwrite_phy(o_od865aer, od865aer)
1363             CALL histwrite_phy(o_abs550aer, abs550aer)
1364             CALL histwrite_phy(o_od550lt1aer, od550lt1aer)
1365             CALL histwrite_phy(o_sconcso4, sconcso4)
1366             CALL histwrite_phy(o_sconcno3, sconcno3)
1367             CALL histwrite_phy(o_sconcoa, sconcoa)
1368             CALL histwrite_phy(o_sconcbc, sconcbc)
1369             CALL histwrite_phy(o_sconcss, sconcss)
1370             CALL histwrite_phy(o_sconcdust, sconcdust)
1371             CALL histwrite_phy(o_concso4, concso4)
1372             CALL histwrite_phy(o_concno3, concno3)
1373             CALL histwrite_phy(o_concoa, concoa)
1374             CALL histwrite_phy(o_concbc, concbc)
1375             CALL histwrite_phy(o_concss, concss)
1376             CALL histwrite_phy(o_concdust, concdust)
1377             CALL histwrite_phy(o_loadso4, loadso4)
1378             CALL histwrite_phy(o_loadoa, loadoa)
1379             CALL histwrite_phy(o_loadbc, loadbc)
1380             CALL histwrite_phy(o_loadss, loadss)
1381             CALL histwrite_phy(o_loaddust, loaddust)
1382             CALL histwrite_phy(o_loadno3, loadno3)
1383             CALL histwrite_phy(o_dryod550aer, dryod550aer)
1384             DO naero = 1, naero_tot-1
1385                CALL histwrite_phy(o_drytausumaero(naero),drytausum_aero(:,naero))
1386             END DO
1387          ENDIF
1388          !--STRAT AER
1389          IF (flag_aerosol.GT.0.OR.flag_aerosol_strat.GT.0) THEN
1390             DO naero = 1, naero_tot
1391                CALL histwrite_phy(o_tausumaero(naero),tausum_aero(:,2,naero))
1392             END DO
1393          ENDIF
1394          IF (flag_aerosol_strat.GT.0) THEN
1395             CALL histwrite_phy(o_tausumaero_lw,tausum_aero(:,6,id_STRAT_phy))
1396          ENDIF
1397       ENDIF
1398
1399       CALL histwrite_phy(o_p_tropopause, p_tropopause)
1400       CALL histwrite_phy(o_t_tropopause, t_tropopause)
1401       CALL histwrite_phy(o_z_tropopause, z_tropopause)
1402
1403! ThL -- In the following, we assume read_climoz == 1
1404       IF (vars_defined) THEN
1405         zx_tmp_fi2d = 0.0    ! Computation for strato, added ThL
1406         DO k=1, klev
1407            zx_tmp_fi2d(:) = zx_tmp_fi2d(:) + wo(:,k,1) * stratomask(:,k) * 1.e3
1408         END DO
1409       ENDIF
1410       CALL histwrite_phy(o_col_O3_strato, zx_tmp_fi2d) ! Added ThL
1411
1412       IF (vars_defined) THEN
1413         zx_tmp_fi2d = 0.0    ! Computation for tropo, added ThL
1414         DO k=1, klev
1415            zx_tmp_fi2d(:) = zx_tmp_fi2d(:) + wo(:,k,1) * (1.0-stratomask(:,k)) * 1.e3
1416         END DO
1417       ENDIF
1418       CALL histwrite_phy(o_col_O3_tropo, zx_tmp_fi2d)   ! Added ThL
1419! end add ThL
1420
1421#ifdef CPP_StratAer
1422       IF (type_trac=='coag') THEN
1423          CALL histwrite_phy(o_R2SO4, R2SO4)
1424          CALL histwrite_phy(o_OCS_lifetime, OCS_lifetime)
1425          CALL histwrite_phy(o_SO2_lifetime, SO2_lifetime)
1426          CALL histwrite_phy(o_budg_3D_backgr_ocs,   budg_3D_backgr_ocs)
1427          CALL histwrite_phy(o_budg_3D_backgr_so2,   budg_3D_backgr_so2)
1428          CALL histwrite_phy(o_budg_3D_ocs_to_so2,   budg_3D_ocs_to_so2)
1429          CALL histwrite_phy(o_budg_3D_so2_to_h2so4, budg_3D_so2_to_h2so4)
1430          CALL histwrite_phy(o_budg_3D_nucl,         budg_3D_nucl)
1431          CALL histwrite_phy(o_budg_3D_cond_evap,    budg_3D_cond_evap)
1432          CALL histwrite_phy(o_budg_dep_dry_ocs,     budg_dep_dry_ocs)
1433          CALL histwrite_phy(o_budg_dep_wet_ocs,     budg_dep_wet_ocs)
1434          CALL histwrite_phy(o_budg_dep_dry_so2,     budg_dep_dry_so2)
1435          CALL histwrite_phy(o_budg_dep_wet_so2,     budg_dep_wet_so2)
1436          CALL histwrite_phy(o_budg_dep_dry_h2so4,   budg_dep_dry_h2so4)
1437          CALL histwrite_phy(o_budg_dep_wet_h2so4,   budg_dep_wet_h2so4)
1438          CALL histwrite_phy(o_budg_dep_dry_part,    budg_dep_dry_part)
1439          CALL histwrite_phy(o_budg_dep_wet_part,    budg_dep_wet_part)
1440          CALL histwrite_phy(o_budg_emi_ocs,         budg_emi_ocs)
1441          CALL histwrite_phy(o_budg_emi_so2,         budg_emi_so2)
1442          CALL histwrite_phy(o_budg_emi_h2so4,       budg_emi_h2so4)
1443          CALL histwrite_phy(o_budg_emi_part,        budg_emi_part)
1444          CALL histwrite_phy(o_budg_ocs_to_so2,      budg_ocs_to_so2)
1445          CALL histwrite_phy(o_budg_so2_to_h2so4,    budg_so2_to_h2so4)
1446          CALL histwrite_phy(o_budg_h2so4_to_part,   budg_h2so4_to_part)
1447          CALL histwrite_phy(o_budg_sed_part,        budg_sed_part)
1448          CALL histwrite_phy(o_surf_PM25_sulf, surf_PM25_sulf)
1449          CALL histwrite_phy(o_vsed_aer, vsed_aer)
1450          CALL histwrite_phy(o_f_r_wet, f_r_wet)
1451          CALL histwrite_phy(o_ext_strat_550, tau_strat_550)
1452          CALL histwrite_phy(o_ext_strat_1020, tau_strat_1020)
1453          CALL histwrite_phy(o_tau_strat_550, tausum_strat(:,1))
1454          CALL histwrite_phy(o_tau_strat_1020, tausum_strat(:,2))
1455       ENDIF
1456#endif
1457       !NL
1458       IF (ok_volcan .AND. ok_ade) THEN
1459          DO k=1, klev
1460             IF (vars_defined) zx_tmp_fi3d(:,k)=heat_volc(:,k)*swradcorr(:)
1461          ENDDO
1462          CALL histwrite_phy(o_heat_volc, zx_tmp_fi3d)
1463          DO k=1, klev
1464             IF (vars_defined) zx_tmp_fi3d(:,k)=cool_volc(:,k)
1465          ENDDO
1466          CALL histwrite_phy(o_cool_volc, zx_tmp_fi3d)
1467       ENDIF
1468       IF (ok_ade) THEN
1469          IF (vars_defined) zx_tmp_fi2d(:)=topswad_aero*swradcorr
1470          CALL histwrite_phy(o_topswad, zx_tmp_fi2d)
1471         
1472          IF (vars_defined) zx_tmp_fi2d(:)=topswad0_aero*swradcorr
1473          CALL histwrite_phy(o_topswad0, zx_tmp_fi2d)
1474                   
1475          IF (vars_defined) zx_tmp_fi2d(:)=solswad_aero*swradcorr
1476          CALL histwrite_phy(o_solswad, zx_tmp_fi2d)
1477                   
1478          IF (vars_defined) zx_tmp_fi2d(:)=solswad0_aero*swradcorr
1479          CALL histwrite_phy(o_solswad0, zx_tmp_fi2d)
1480         
1481          CALL histwrite_phy(o_toplwad, toplwad_aero)
1482          CALL histwrite_phy(o_toplwad0, toplwad0_aero)
1483          CALL histwrite_phy(o_sollwad, sollwad_aero)
1484          CALL histwrite_phy(o_sollwad0, sollwad0_aero)
1485          !====MS forcing diagnostics
1486          IF (new_aod) THEN
1487          !ym warning : topsw_aero, solsw_aero, topsw0_aero, solsw0_aero are not defined by model
1488          !ym => init to 0 in radlwsw_m.F90 ztopsw_aero, zsolsw_aero, ztopsw0_aero, zsolsw0_aero
1489
1490             IF (vars_defined) zx_tmp_fi2d(:)=topsw_aero(:,1)*swradcorr(:)
1491             CALL histwrite_phy(o_swtoaas_nat,zx_tmp_fi2d)
1492             IF (vars_defined) zx_tmp_fi2d(:)=solsw_aero(:,1)*swradcorr(:)
1493             CALL histwrite_phy(o_swsrfas_nat,zx_tmp_fi2d)
1494             IF (vars_defined) zx_tmp_fi2d(:)=topsw0_aero(:,1)*swradcorr(:)
1495             CALL histwrite_phy(o_swtoacs_nat,zx_tmp_fi2d)
1496             IF (vars_defined) zx_tmp_fi2d(:)=solsw0_aero(:,1)*swradcorr(:)
1497             CALL histwrite_phy(o_swsrfcs_nat,zx_tmp_fi2d)
1498             !ant
1499             IF (vars_defined) zx_tmp_fi2d(:)=topsw_aero(:,2)*swradcorr(:)
1500             CALL histwrite_phy(o_swtoaas_ant,zx_tmp_fi2d)
1501             IF (vars_defined) zx_tmp_fi2d(:)=solsw_aero(:,2)*swradcorr(:)
1502             CALL histwrite_phy(o_swsrfas_ant,zx_tmp_fi2d)
1503             IF (vars_defined) zx_tmp_fi2d(:)=topsw0_aero(:,2)*swradcorr(:)
1504             CALL histwrite_phy(o_swtoacs_ant,zx_tmp_fi2d)
1505             IF (vars_defined) zx_tmp_fi2d(:)=solsw0_aero(:,2)*swradcorr(:)
1506             CALL histwrite_phy(o_swsrfcs_ant,zx_tmp_fi2d)
1507             !cf
1508             IF (.not. aerosol_couple) THEN
1509                IF (vars_defined) zx_tmp_fi2d(:)=topswcf_aero(:,1)*swradcorr(:)
1510                CALL histwrite_phy(o_swtoacf_nat,zx_tmp_fi2d)
1511                IF (vars_defined) zx_tmp_fi2d(:)=solswcf_aero(:,1)*swradcorr(:)
1512                CALL histwrite_phy(o_swsrfcf_nat,zx_tmp_fi2d)
1513                IF (vars_defined) zx_tmp_fi2d(:)=topswcf_aero(:,2)*swradcorr(:)
1514                CALL histwrite_phy(o_swtoacf_ant,zx_tmp_fi2d)
1515                IF (vars_defined) zx_tmp_fi2d(:)=solswcf_aero(:,2)*swradcorr(:)
1516                CALL histwrite_phy(o_swsrfcf_ant,zx_tmp_fi2d)
1517                IF (vars_defined) zx_tmp_fi2d(:)=topswcf_aero(:,3)*swradcorr(:)
1518                CALL histwrite_phy(o_swtoacf_zero,zx_tmp_fi2d)
1519                IF (vars_defined) zx_tmp_fi2d(:)=solswcf_aero(:,3)*swradcorr(:)
1520                CALL histwrite_phy(o_swsrfcf_zero,zx_tmp_fi2d)
1521             ENDIF
1522          ENDIF ! new_aod
1523          !====MS forcing diagnostics
1524       ENDIF
1525       IF (ok_aie) THEN
1526          IF (vars_defined) zx_tmp_fi2d(:)= topswai_aero*swradcorr
1527          CALL histwrite_phy(o_topswai, zx_tmp_fi2d)
1528         
1529          IF (vars_defined) zx_tmp_fi2d(:)=toplwai_aero*swradcorr
1530          CALL histwrite_phy(o_toplwai, zx_tmp_fi2d)
1531         
1532          IF (vars_defined) zx_tmp_fi2d(:)=solswai_aero*swradcorr
1533          CALL histwrite_phy(o_solswai, zx_tmp_fi2d)
1534         
1535          IF (vars_defined) zx_tmp_fi2d(:)=sollwai_aero*swradcorr
1536          CALL histwrite_phy(o_sollwai, zx_tmp_fi2d)
1537       ENDIF
1538       IF (flag_aerosol.GT.0.AND.ok_cdnc) THEN
1539          CALL histwrite_phy(o_scdnc, scdnc)
1540          CALL histwrite_phy(o_cldncl, cldncl)
1541          CALL histwrite_phy(o_reffclws, reffclws)
1542          CALL histwrite_phy(o_reffclwc, reffclwc)
1543          CALL histwrite_phy(o_cldnvi, cldnvi)
1544          CALL histwrite_phy(o_lcc, lcc)
1545          CALL histwrite_phy(o_lcc3d, lcc3d)
1546          CALL histwrite_phy(o_lcc3dcon, lcc3dcon)
1547          CALL histwrite_phy(o_lcc3dstra, lcc3dstra)
1548          CALL histwrite_phy(o_icc3dcon, icc3dcon)
1549          CALL histwrite_phy(o_icc3dstra, icc3dstra)
1550          CALL histwrite_phy(o_cldicemxrat, zfice)
1551          ! A reactiver ???
1552          !zx_tmp_fi3d(:,:)=1-zfice(:,:)
1553          !CALL histwrite_phy(o_cldwatmxrat, zx_tmp_fi3d)
1554          CALL histwrite_phy(o_reffclwtop, reffclwtop)
1555       ENDIF
1556       ! Champs 3D:
1557       IF (ok_ade .OR. ok_aie) then
1558          CALL histwrite_phy(o_ec550aer, ec550aer)
1559       ENDIF
1560       CALL histwrite_phy(o_lwcon, flwc)
1561       CALL histwrite_phy(o_iwcon, fiwc)
1562       CALL histwrite_phy(o_temp, t_seri)
1563       CALL histwrite_phy(o_theta, theta)
1564       CALL histwrite_phy(o_ovapinit, qx(:,:,ivap))
1565       CALL histwrite_phy(o_ovap, q_seri)
1566       CALL histwrite_phy(o_oliq, ql_seri)
1567
1568       IF (vars_defined) zx_tmp_fi3d = ql_seri+qs_seri
1569       CALL histwrite_phy(o_ocond, zx_tmp_fi3d)
1570
1571       CALL histwrite_phy(o_geop, zphi)
1572       CALL histwrite_phy(o_vitu, u_seri)
1573       CALL histwrite_phy(o_vitv, v_seri)
1574       CALL histwrite_phy(o_vitw, omega)
1575       CALL histwrite_phy(o_pres, pplay)
1576       CALL histwrite_phy(o_paprs, paprs(:,1:klev))
1577       
1578       IF (vars_defined) zx_tmp_fi3d = zphi/RG
1579       CALL histwrite_phy(o_zfull,zx_tmp_fi3d)
1580
1581#ifdef CPP_XIOS
1582!solbnd begin
1583#ifdef CPP_RRTM
1584      IF (iflag_rrtm.EQ.1) THEN
1585       IF (vars_defined) THEN
1586        DO ISW=1, NSW
1587          zx_tmp_fi3dsp(:,ISW) = swdn(:,klevp1)*swradcorr(:)*RSUN(ISW)
1588        ENDDO
1589        CALL histwrite_phy(o_solbnd, zx_tmp_fi3dsp)
1590       ENDIF
1591      ENDIF
1592#endif
1593!solbnd end
1594#endif
1595
1596       IF (flag_aerosol_strat.EQ.2) THEN
1597         CALL histwrite_phy(o_stratomask, stratomask)
1598       ENDIF
1599     
1600       IF (vars_defined)  THEN
1601        zx_tmp_fi3d(:,1)= pphis(:)/RG
1602        DO k = 2, klev
1603         DO i = 1, klon
1604            zx_tmp_fi3d(i,k) = zphi(i,k-1)/RG + &
1605                          (zphi(i,k)-zphi(i,k-1))/RG * &
1606                          (paprs(i,k)-pplay(i,k-1))/(pplay(i,k)-pplay(i,k-1))
1607         ENDDO
1608        ENDDO
1609       ENDIF
1610       CALL histwrite_phy(o_zhalf, zx_tmp_fi3d)
1611       CALL histwrite_phy(o_rneb, cldfra)
1612       CALL histwrite_phy(o_rnebcon, rnebcon)
1613       CALL histwrite_phy(o_rnebls, rneb)
1614       CALL histwrite_phy(o_rneblsvol, rneblsvol)
1615       IF (vars_defined)  THEN
1616          DO k=1, klev
1617             DO i=1, klon
1618                zx_tmp_fi3d(i,k)=cldfra(i,k)*JrNt(i)
1619             ENDDO
1620          ENDDO
1621       ENDIF
1622       CALL histwrite_phy(o_rnebjn, zx_tmp_fi3d)
1623       CALL histwrite_phy(o_rhum, zx_rh)
1624       
1625       IF (vars_defined) zx_tmp_fi3d = wo(:, :, 1) * dobson_u * 1e3 / zmasse / rmo3 * rmd
1626       CALL histwrite_phy(o_ozone, zx_tmp_fi3d)
1627
1628       IF (read_climoz == 2) THEN
1629         IF (vars_defined) zx_tmp_fi3d = wo(:, :, 2) * dobson_u * 1e3 / zmasse / rmo3 * rmd
1630         CALL histwrite_phy(o_ozone_light, zx_tmp_fi3d)
1631       ENDIF
1632
1633       CALL histwrite_phy(o_duphy, d_u)
1634
1635       CALL histwrite_phy(o_dtphy, d_t)
1636
1637       CALL histwrite_phy(o_dqphy,  d_qx(:,:,ivap))
1638       IF (vars_defined) CALL water_int(klon,klev,d_qx(:,:,ivap),zmasse,zx_tmp_fi2d)
1639       CALL histwrite_phy(o_dqphy2d,  zx_tmp_fi2d)
1640
1641       CALL histwrite_phy(o_dqlphy,  d_qx(:,:,iliq))
1642       IF (vars_defined) CALL water_int(klon,klev,d_qx(:,:,iliq),zmasse,zx_tmp_fi2d)
1643       CALL histwrite_phy(o_dqlphy2d,  zx_tmp_fi2d)
1644
1645       IF (nqo.EQ.3) THEN
1646       CALL histwrite_phy(o_dqsphy,  d_qx(:,:,isol))
1647       IF (vars_defined) CALL water_int(klon,klev,d_qx(:,:,isol),zmasse,zx_tmp_fi2d)
1648       CALL histwrite_phy(o_dqsphy2d,  zx_tmp_fi2d)
1649       ELSE
1650       zx_tmp_fi3d=0.0
1651       CALL histwrite_phy(o_dqsphy,  zx_tmp_fi3d)
1652       zx_tmp_fi2d=0.0
1653       CALL histwrite_phy(o_dqsphy2d,  zx_tmp_fi2d)
1654       ENDIF
1655
1656       DO nsrf=1, nbsrf
1657          IF (vars_defined) zx_tmp_fi2d(1 : klon) = falb1( 1 : klon, nsrf)
1658          CALL histwrite_phy(o_albe_srf(nsrf), zx_tmp_fi2d)
1659          IF (vars_defined) zx_tmp_fi2d(1 : klon) = z0m( 1 : klon, nsrf)
1660          CALL histwrite_phy(o_z0m_srf(nsrf), zx_tmp_fi2d)
1661          IF (vars_defined) zx_tmp_fi2d(1 : klon) = z0h( 1 : klon, nsrf)
1662          CALL histwrite_phy(o_z0h_srf(nsrf), zx_tmp_fi2d)
1663          IF (vars_defined) zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf)
1664          CALL histwrite_phy(o_ages_srf(nsrf), zx_tmp_fi2d)
1665          IF (vars_defined) zx_tmp_fi2d(1 : klon) = snow( 1 : klon, nsrf)
1666          CALL histwrite_phy(o_snow_srf(nsrf), zx_tmp_fi2d)
1667       ENDDO !nsrf=1, nbsrf
1668       CALL histwrite_phy(o_alb1, albsol1)
1669       CALL histwrite_phy(o_alb2, albsol2)
1670       !FH Sorties pour la couche limite
1671       IF (iflag_pbl>1) THEN
1672          zx_tmp_fi3d=0.
1673          IF (vars_defined) THEN
1674             DO nsrf=1,nbsrf
1675                DO k=1,klev
1676                   zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k) &
1677                        +pctsrf(:,nsrf)*pbl_tke(:,k,nsrf)
1678                ENDDO
1679             ENDDO
1680          ENDIF
1681          CALL histwrite_phy(o_tke, zx_tmp_fi3d)
1682
1683          CALL histwrite_phy(o_tke_max, zx_tmp_fi3d)
1684       ENDIF
1685
1686       CALL histwrite_phy(o_kz, coefh(:,:,is_ave))
1687
1688       CALL histwrite_phy(o_kz_max, coefh(:,:,is_ave))
1689
1690       CALL histwrite_phy(o_clwcon, clwcon0)
1691       CALL histwrite_phy(o_dtdyn, d_t_dyn)
1692
1693       CALL histwrite_phy(o_dqdyn, d_q_dyn)
1694
1695       CALL histwrite_phy(o_dqdyn2d,d_q_dyn2d)
1696
1697       CALL histwrite_phy(o_dqldyn, d_ql_dyn)
1698
1699       CALL histwrite_phy(o_dqldyn2d, d_ql_dyn2d)
1700
1701       CALL histwrite_phy(o_dqsdyn, d_qs_dyn)
1702
1703       CALL histwrite_phy(o_dqsdyn2d, d_qs_dyn2d)
1704
1705       CALL histwrite_phy(o_dudyn, d_u_dyn)
1706       CALL histwrite_phy(o_dvdyn, d_v_dyn)
1707
1708       IF (vars_defined) THEN
1709          zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys
1710       ENDIF
1711       CALL histwrite_phy(o_dtcon, zx_tmp_fi3d)
1712       IF (iflag_thermals.EQ.0) THEN
1713          IF (vars_defined) THEN
1714             zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + &
1715                  d_t_ajsb(1:klon,1:klev)/pdtphys
1716          ENDIF
1717          CALL histwrite_phy(o_tntc, zx_tmp_fi3d)
1718       ELSE IF(iflag_thermals.GE.1.AND.iflag_wake.EQ.1) THEN
1719          IF (vars_defined) THEN
1720             zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + &
1721                  d_t_ajs(1:klon,1:klev)/pdtphys + &
1722                  d_t_wake(1:klon,1:klev)/pdtphys
1723          ENDIF
1724          CALL histwrite_phy(o_tntc, zx_tmp_fi3d)
1725       ENDIF
1726       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys
1727       CALL histwrite_phy(o_ducon, zx_tmp_fi3d)
1728       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_con(1:klon,1:klev)/pdtphys
1729       CALL histwrite_phy(o_dvcon, zx_tmp_fi3d)
1730       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
1731       CALL histwrite_phy(o_dqcon, zx_tmp_fi3d)
1732       IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
1733       CALL histwrite_phy(o_dqcon2d, zx_tmp_fi2d)
1734
1735       IF (iflag_thermals.EQ.0) THEN
1736          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
1737          CALL histwrite_phy(o_tnhusc, zx_tmp_fi3d)
1738       ELSE IF (iflag_thermals.GE.1.AND.iflag_wake.EQ.1) THEN
1739          IF (vars_defined) THEN
1740             zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys + &
1741                  d_q_ajs(1:klon,1:klev)/pdtphys + &
1742                  d_q_wake(1:klon,1:klev)/pdtphys
1743          ENDIF
1744          CALL histwrite_phy(o_tnhusc, zx_tmp_fi3d)
1745       ENDIF
1746
1747       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lsc(1:klon,1:klev)/pdtphys
1748       CALL histwrite_phy(o_dtlsc, zx_tmp_fi3d)
1749       IF (vars_defined) zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+ &
1750            d_t_eva(1:klon,1:klev))/pdtphys
1751       CALL histwrite_phy(o_dtlschr, zx_tmp_fi3d)
1752       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys
1753       CALL histwrite_phy(o_dqlsc, zx_tmp_fi3d)
1754       IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
1755       CALL histwrite_phy(o_dqlsc2d, zx_tmp_fi2d)
1756       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=beta_prec(1:klon,1:klev)
1757       CALL histwrite_phy(o_beta_prec, zx_tmp_fi3d)
1758!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1759       ! Sorties specifiques a la separation thermiques/non thermiques
1760       IF (iflag_thermals>=1) THEN
1761          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscth(1:klon,1:klev)/pdtphys
1762          CALL histwrite_phy(o_dtlscth, zx_tmp_fi3d)
1763          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscst(1:klon,1:klev)/pdtphys
1764          CALL histwrite_phy(o_dtlscst, zx_tmp_fi3d)
1765          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscth(1:klon,1:klev)/pdtphys
1766          CALL histwrite_phy(o_dqlscth, zx_tmp_fi3d)
1767          IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
1768          CALL histwrite_phy(o_dqlscth2d, zx_tmp_fi2d)
1769          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscst(1:klon,1:klev)/pdtphys
1770          CALL histwrite_phy(o_dqlscst, zx_tmp_fi3d)
1771          IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
1772          CALL histwrite_phy(o_dqlscst2d, zx_tmp_fi2d)
1773          CALL histwrite_phy(o_plulth, plul_th)
1774          CALL histwrite_phy(o_plulst, plul_st)
1775          IF (vars_defined) THEN
1776             DO i=1,klon
1777                zx_tmp_fi2d(1:klon)=lmax_th(:)
1778             ENDDO
1779          ENDIF
1780          CALL histwrite_phy(o_lmaxth, zx_tmp_fi2d)
1781          IF (vars_defined) THEN
1782             DO k=1,klev
1783                DO i=1,klon
1784                   IF (ptconvth(i,k)) THEN
1785                      zx_tmp_fi3d(i,k)=1.
1786                   ELSE
1787                      zx_tmp_fi3d(i,k)=0.
1788                   ENDIF
1789                ENDDO
1790             ENDDO
1791          ENDIF
1792          CALL histwrite_phy(o_ptconvth, zx_tmp_fi3d)
1793       ENDIF ! iflag_thermals>=1
1794!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1795       zpt_conv = 0.
1796       WHERE (ptconv) zpt_conv = 1.
1797       CALL histwrite_phy(o_ptconv, zpt_conv)
1798!!       IF (vars_defined)         zx_tmp_fi2d=float(itau_con)/float(itap)
1799!!       CALL histwrite_phy(o_ftime_con, zx_tmp_fi2d)
1800       IF (vars_defined) THEN
1801          zpt_conv2d(:) = 0.
1802          DO k=1,klev
1803            WHERE (ptconv(:,k)) zpt_conv2d(:) = 1.
1804          ENDDO
1805       ENDIF
1806       CALL histwrite_phy(o_ftime_deepcv, zpt_conv2d)
1807       IF (vars_defined) THEN
1808          zx_tmp_fi2d(:) = 0.
1809          DO k=1,klev
1810            WHERE (ptconvth(:,k)) zx_tmp_fi2d(:) = 1.
1811          ENDDO
1812       ENDIF
1813       CALL histwrite_phy(o_ftime_th, zx_tmp_fi2d)
1814       IF (vars_defined) THEN
1815           zx_tmp_fi2d(:) = max(zx_tmp_fi2d(:),zpt_conv2d(:))
1816       ENDIF
1817       CALL histwrite_phy(o_ftime_con, zx_tmp_fi2d)
1818!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1819       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys
1820       CALL histwrite_phy(o_dtvdf, zx_tmp_fi3d)
1821       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_diss(1:klon,1:klev)/pdtphys
1822       CALL histwrite_phy(o_dtdis, zx_tmp_fi3d)
1823       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
1824       CALL histwrite_phy(o_dqvdf, zx_tmp_fi3d)
1825       IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
1826       CALL histwrite_phy(o_dqvdf2d, zx_tmp_fi2d)
1827       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys
1828       CALL histwrite_phy(o_dteva, zx_tmp_fi3d)
1829       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys
1830       CALL histwrite_phy(o_dqeva, zx_tmp_fi3d)
1831       IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
1832       CALL histwrite_phy(o_dqeva2d, zx_tmp_fi2d)
1833       CALL histwrite_phy(o_ratqs, ratqs)
1834       IF (vars_defined) THEN
1835          zx_tmp_fi3d(1:klon,1:klev)=d_t_ajs(1:klon,1:klev)/pdtphys - &
1836               d_t_ajsb(1:klon,1:klev)/pdtphys
1837       ENDIF
1838       CALL histwrite_phy(o_dtthe, zx_tmp_fi3d)
1839       IF (vars_defined) THEN
1840          zx_tmp_fi3d(1:klon,1:klev)=d_u_ajs(1:klon,1:klev)/pdtphys
1841       ENDIF
1842       CALL histwrite_phy(o_duthe, zx_tmp_fi3d)
1843       IF (vars_defined) THEN
1844          zx_tmp_fi3d(1:klon,1:klev)=d_v_ajs(1:klon,1:klev)/pdtphys
1845       ENDIF
1846       CALL histwrite_phy(o_dvthe, zx_tmp_fi3d)
1847
1848       IF (iflag_thermals>=1) THEN
1849          ! Pour l instant 0 a y reflichir pour les thermiques
1850          ! regroupe avec ftime_deepcv et ftime_con
1851          !!zx_tmp_fi2d=0.
1852          !!CALL histwrite_phy(o_ftime_th, zx_tmp_fi2d)
1853          CALL histwrite_phy(o_f_th, fm_therm)
1854          CALL histwrite_phy(o_e_th, entr_therm)
1855          CALL histwrite_phy(o_w_th, zw2)
1856          CALL histwrite_phy(o_q_th, zqasc)
1857          CALL histwrite_phy(o_a_th, fraca)
1858          CALL histwrite_phy(o_cloudth_sth, cloudth_sth)
1859          CALL histwrite_phy(o_cloudth_senv, cloudth_senv)
1860          CALL histwrite_phy(o_cloudth_sigmath, cloudth_sigmath)
1861          CALL histwrite_phy(o_cloudth_sigmaenv, cloudth_sigmaenv)
1862          CALL histwrite_phy(o_d_th, detr_therm)
1863          CALL histwrite_phy(o_f0_th, f0)
1864          CALL histwrite_phy(o_zmax_th, zmax_th)
1865          IF (vars_defined) THEN
1866             zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys - &
1867                  d_q_ajsb(1:klon,1:klev)/pdtphys
1868          ENDIF
1869          CALL histwrite_phy(o_dqthe, zx_tmp_fi3d)
1870          IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
1871          CALL histwrite_phy(o_dqthe2d, zx_tmp_fi2d)
1872       ENDIF !iflag_thermals
1873       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys
1874       CALL histwrite_phy(o_dtajs, zx_tmp_fi3d)
1875       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys
1876       CALL histwrite_phy(o_dqajs, zx_tmp_fi3d)
1877       IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
1878       CALL histwrite_phy(o_dqajs2d, zx_tmp_fi2d)
1879       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys
1880       CALL histwrite_phy(o_dtswr, zx_tmp_fi3d)
1881       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_sw0(1:klon,1:klev)/pdtphys
1882       CALL histwrite_phy(o_dtsw0, zx_tmp_fi3d)
1883       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lwr(1:klon,1:klev)/pdtphys
1884       CALL histwrite_phy(o_dtlwr, zx_tmp_fi3d)
1885       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lw0(1:klon,1:klev)/pdtphys
1886       CALL histwrite_phy(o_dtlw0, zx_tmp_fi3d)
1887       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)/pdtphys
1888       CALL histwrite_phy(o_dtec, zx_tmp_fi3d)
1889       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
1890       CALL histwrite_phy(o_duvdf, zx_tmp_fi3d)
1891       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
1892       CALL histwrite_phy(o_dvvdf, zx_tmp_fi3d)
1893       IF (ok_orodr) THEN
1894          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
1895          CALL histwrite_phy(o_duoro, zx_tmp_fi3d)
1896          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
1897          CALL histwrite_phy(o_dvoro, zx_tmp_fi3d)
1898          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_oro(1:klon,1:klev)/pdtphys
1899          CALL histwrite_phy(o_dtoro, zx_tmp_fi3d)
1900       ENDIF
1901       IF (ok_orolf) THEN
1902          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
1903          CALL histwrite_phy(o_dulif, zx_tmp_fi3d)
1904
1905          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
1906          CALL histwrite_phy(o_dvlif, zx_tmp_fi3d)
1907
1908          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lif(1:klon,1:klev)/pdtphys
1909          CALL histwrite_phy(o_dtlif, zx_tmp_fi3d)
1910       ENDIF
1911
1912       IF (ok_hines) THEN
1913          IF (vars_defined) zx_tmp_fi3d=du_gwd_hines/pdtphys
1914          CALL histwrite_phy(o_du_gwd_hines, zx_tmp_fi3d)
1915
1916          IF (vars_defined) zx_tmp_fi3d= dv_gwd_hines/pdtphys         
1917          CALL histwrite_phy(o_dv_gwd_hines, zx_tmp_fi3d)
1918         
1919          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_hin(1:klon,1:klev)/pdtphys
1920          CALL histwrite_phy(o_dthin, zx_tmp_fi3d)
1921          CALL histwrite_phy(o_ustr_gwd_hines, zustr_gwd_hines)
1922          CALL histwrite_phy(o_vstr_gwd_hines, zvstr_gwd_hines)
1923       ENDIF
1924
1925       IF (.not. ok_hines .and. ok_gwd_rando) THEN
1926          IF (vars_defined)  zx_tmp_fi3d=du_gwd_front / pdtphys
1927          CALL histwrite_phy(o_du_gwd_front, zx_tmp_fi3d)
1928         
1929          IF (vars_defined)  zx_tmp_fi3d=dv_gwd_front / pdtphys
1930          CALL histwrite_phy(o_dv_gwd_front, zx_tmp_fi3d)
1931         
1932          CALL histwrite_phy(o_ustr_gwd_front, zustr_gwd_front)
1933          CALL histwrite_phy(o_vstr_gwd_front, zvstr_gwd_front)
1934       ENDIF
1935
1936       IF (ok_gwd_rando) THEN
1937          IF (vars_defined)  zx_tmp_fi3d=du_gwd_rando / pdtphys
1938          CALL histwrite_phy(o_du_gwd_rando, zx_tmp_fi3d)
1939         
1940          IF (vars_defined)  zx_tmp_fi3d=dv_gwd_rando / pdtphys
1941          CALL histwrite_phy(o_dv_gwd_rando, zx_tmp_fi3d)
1942          CALL histwrite_phy(o_ustr_gwd_rando, zustr_gwd_rando)
1943          CALL histwrite_phy(o_vstr_gwd_rando, zvstr_gwd_rando)
1944          CALL histwrite_phy(o_east_gwstress, east_gwstress )
1945          CALL histwrite_phy(o_west_gwstress, west_gwstress )
1946       ENDIF
1947
1948       IF (ok_qch4) THEN
1949          IF (vars_defined) zx_tmp_fi3d=d_q_ch4 / pdtphys
1950          CALL histwrite_phy(o_dqch4, zx_tmp_fi3d)
1951       ENDIF
1952       
1953       IF (vars_defined) THEN
1954         DO k=1, klevp1
1955           zx_tmp_fi3d1(:,k)=swup(:,k)*swradcorr(:)
1956         ENDDO
1957       ENDIF
1958       
1959       CALL histwrite_phy(o_rsu, zx_tmp_fi3d1)
1960
1961
1962       IF (vars_defined) THEN
1963         DO k=1, klevp1
1964           zx_tmp_fi3d1(:,k)=swdn(:,k)*swradcorr(:)
1965         ENDDO
1966       ENDIF
1967       
1968       CALL histwrite_phy(o_rsd, zx_tmp_fi3d1)
1969
1970       IF (vars_defined) THEN
1971         DO k=1, klevp1
1972           zx_tmp_fi3d1(:,k)=swup0(:,k)*swradcorr(:)
1973         ENDDO
1974       ENDIF
1975       
1976       CALL histwrite_phy(o_rsucs, zx_tmp_fi3d1)
1977
1978       IF (vars_defined) THEN
1979         DO k=1, klevp1
1980           zx_tmp_fi3d1(:,k)=swupc0(:,k)*swradcorr(:)
1981         ENDDO
1982       ENDIF
1983       CALL histwrite_phy(o_rsucsaf, zx_tmp_fi3d1)
1984
1985       IF (vars_defined) THEN
1986         DO k=1, klevp1
1987           zx_tmp_fi3d1(:,k)=swdn0(:,k)*swradcorr(:)
1988         ENDDO
1989       ENDIF
1990       CALL histwrite_phy(o_rsdcs, zx_tmp_fi3d1)
1991
1992
1993       IF (vars_defined) THEN
1994         DO k=1, klevp1
1995           zx_tmp_fi3d1(:,k)=swdnc0(:,k)*swradcorr(:)
1996         ENDDO
1997       ENDIF
1998       CALL histwrite_phy(o_rsdcsaf, zx_tmp_fi3d1)
1999
2000       CALL histwrite_phy(o_rlu, lwup)
2001       CALL histwrite_phy(o_rld, lwdn)
2002       CALL histwrite_phy(o_rlucs, lwup0)
2003       CALL histwrite_phy(o_rldcs, lwdn0)
2004
2005       IF (vars_defined) THEN
2006          zx_tmp_fi3d(1:klon,1:klev)=d_t(1:klon,1:klev)+ &
2007               d_t_dyn(1:klon,1:klev)
2008       ENDIF
2009       CALL histwrite_phy(o_tnt, zx_tmp_fi3d)
2010
2011       IF (vars_defined) THEN
2012          zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys + &
2013               d_t_lwr(1:klon,1:klev)/pdtphys
2014       ENDIF
2015       CALL histwrite_phy(o_tntr, zx_tmp_fi3d)
2016       IF (vars_defined) THEN
2017          zx_tmp_fi3d(1:klon,1:klev)= (d_t_lsc(1:klon,1:klev)+ &
2018               d_t_eva(1:klon,1:klev)+ &
2019               d_t_vdf(1:klon,1:klev))/pdtphys
2020       ENDIF
2021       CALL histwrite_phy(o_tntscpbl, zx_tmp_fi3d)
2022       IF (vars_defined) THEN
2023          zx_tmp_fi3d(1:klon,1:klev)=d_qx(1:klon,1:klev,ivap)+ &
2024               d_q_dyn(1:klon,1:klev)
2025       ENDIF
2026       CALL histwrite_phy(o_tnhus, zx_tmp_fi3d)
2027       IF (vars_defined) THEN
2028          zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys+ &
2029               d_q_eva(1:klon,1:klev)/pdtphys
2030       ENDIF
2031       CALL histwrite_phy(o_tnhusscpbl, zx_tmp_fi3d)
2032       CALL histwrite_phy(o_evu, coefm(:,:,is_ave))
2033       IF (vars_defined) THEN
2034          zx_tmp_fi3d(1:klon,1:klev)=q_seri(1:klon,1:klev)+ &
2035               ql_seri(1:klon,1:klev)
2036       ENDIF
2037       CALL histwrite_phy(o_h2o, zx_tmp_fi3d)
2038       IF (iflag_con >= 3) THEN
2039          IF (vars_defined) THEN
2040             zx_tmp_fi3d(1:klon,1:klev)=-1 * (dnwd(1:klon,1:klev)+ &
2041                  dnwd0(1:klon,1:klev))
2042          ENDIF
2043          CALL histwrite_phy(o_mcd, zx_tmp_fi3d)
2044          IF (vars_defined) THEN
2045             zx_tmp_fi3d(1:klon,1:klev)=upwd(1:klon,1:klev) + &
2046                  dnwd(1:klon,1:klev)+ dnwd0(1:klon,1:klev)
2047          ENDIF
2048          CALL histwrite_phy(o_dmc, zx_tmp_fi3d)
2049       ELSE IF (iflag_con == 2) THEN
2050          CALL histwrite_phy(o_mcd,  pmfd)
2051          IF (vars_defined) zx_tmp_fi3d = pmfu + pmfd
2052          CALL histwrite_phy(o_dmc,  zx_tmp_fi3d)
2053       ENDIF
2054       CALL histwrite_phy(o_ref_liq, ref_liq)
2055       CALL histwrite_phy(o_ref_ice, ref_ice)
2056!
2057       IF (ok_4xCO2atm) THEN
2058          IF (vars_defined) zx_tmp_fi2d(:) = swupp(:,klevp1)*swradcorr(:)
2059          CALL histwrite_phy(o_rsut4co2, zx_tmp_fi2d)
2060          IF (vars_defined) zx_tmp_fi2d(:) = lwupp(:,klevp1)
2061          CALL histwrite_phy(o_rlut4co2, zx_tmp_fi2d)
2062          IF (vars_defined) zx_tmp_fi2d(:) = swup0p(:,klevp1)*swradcorr(:)
2063          CALL histwrite_phy(o_rsutcs4co2, zx_tmp_fi2d)
2064          IF (vars_defined) zx_tmp_fi2d(:) = lwup0p(:,klevp1)
2065          CALL histwrite_phy(o_rlutcs4co2, zx_tmp_fi2d)
2066          IF (vars_defined) THEN
2067            DO k=1, klevp1
2068              zx_tmp_fi3d1(:,k)=swupp(:,k)*swradcorr(:)
2069            ENDDO
2070          ENDIF
2071          CALL histwrite_phy(o_rsu4co2, zx_tmp_fi3d1)
2072          IF (vars_defined) THEN
2073            DO k=1, klevp1
2074              zx_tmp_fi3d1(:,k)=swup0p(:,k)*swradcorr(:)
2075            ENDDO
2076          ENDIF
2077          CALL histwrite_phy(o_rsucs4co2, zx_tmp_fi3d1)
2078          IF (vars_defined) THEN
2079            DO k=1, klevp1
2080              zx_tmp_fi3d1(:,k)=swdnp(:,k)*swradcorr(:)
2081            ENDDO
2082          ENDIF
2083          CALL histwrite_phy(o_rsd4co2, zx_tmp_fi3d1)
2084          IF (vars_defined) THEN
2085            DO k=1, klevp1
2086              zx_tmp_fi3d1(:,k)=swdn0p(:,k)*swradcorr(:)
2087            ENDDO
2088          ENDIF
2089          CALL histwrite_phy(o_rsdcs4co2, zx_tmp_fi3d1)
2090          CALL histwrite_phy(o_rlu4co2, lwupp)
2091          CALL histwrite_phy(o_rlucs4co2, lwup0p)
2092          CALL histwrite_phy(o_rld4co2, lwdnp)
2093          CALL histwrite_phy(o_rldcs4co2, lwdn0p)
2094       ENDIF !ok_4xCO2atm
2095!!!!!!!!!!!! Sorties niveaux de pression NMC !!!!!!!!!!!!!!!!!!!!
2096#ifdef CPP_IOIPSL
2097#ifndef CPP_XIOS
2098  IF (.NOT.ok_all_xml) THEN
2099       ! ATTENTION, LES ANCIENS HISTWRITE ONT ETES CONSERVES EN ATTENDANT MIEUX:
2100       ! Champs interpolles sur des niveaux de pression
2101       missing_val=missing_val_nf90
2102       DO iff=7, nfiles-1 !--OB: here we deal with files 7,8,9
2103
2104          CALL histwrite_phy(o_tnondef,tnondef(:,:,iff-6),iff)
2105          CALL histwrite_phy(o_ta,twriteSTD(:,:,iff-6),iff)
2106          CALL histwrite_phy(o_zg,phiwriteSTD(:,:,iff-6),iff)
2107          CALL histwrite_phy(o_hus,qwriteSTD(:,:,iff-6),iff)
2108          CALL histwrite_phy(o_hur,rhwriteSTD(:,:,iff-6),iff)
2109          CALL histwrite_phy(o_ua,uwriteSTD(:,:,iff-6),iff)
2110          CALL histwrite_phy(o_va,vwriteSTD(:,:,iff-6),iff)
2111          CALL histwrite_phy(o_wap,wwriteSTD(:,:,iff-6),iff)
2112          IF (vars_defined) THEN
2113             DO k=1, nlevSTD
2114                DO i=1, klon
2115                   IF (tnondef(i,k,iff-6).NE.missing_val) THEN
2116                      IF (freq_outNMC(iff-6).LT.0) THEN
2117                         freq_moyNMC(iff-6)=(mth_len*un_jour)/freq_calNMC(iff-6)
2118                      ELSE
2119                         freq_moyNMC(iff-6)=freq_outNMC(iff-6)/freq_calNMC(iff-6)
2120                      ENDIF
2121                      zx_tmp_fi3d_STD(i,k) = (100.*tnondef(i,k,iff-6))/freq_moyNMC(iff-6)
2122                   ELSE
2123                      zx_tmp_fi3d_STD(i,k) = missing_val
2124                   ENDIF
2125                ENDDO
2126             ENDDO
2127          ENDIF
2128          CALL histwrite_phy(o_psbg,zx_tmp_fi3d_STD,iff)
2129          IF (vars_defined) THEN
2130             DO k=1, nlevSTD
2131                DO i=1, klon
2132                   IF (O3sumSTD(i,k,iff-6).NE.missing_val) THEN
2133                      zx_tmp_fi3d_STD(i,k) = O3sumSTD(i,k,iff-6) * 1.e+9
2134                   ELSE
2135                      zx_tmp_fi3d_STD(i,k) = missing_val
2136                   ENDIF
2137                ENDDO
2138             ENDDO !k=1, nlevSTD
2139          ENDIF
2140          CALL histwrite_phy(o_tro3,zx_tmp_fi3d_STD,iff)
2141          IF (read_climoz == 2) THEN
2142             IF (vars_defined) THEN
2143                DO k=1, nlevSTD
2144                   DO i=1, klon
2145                      IF (O3daysumSTD(i,k,iff-6).NE.missing_val) THEN
2146                         zx_tmp_fi3d_STD(i,k) = O3daysumSTD(i,k,iff-6) * 1.e+9
2147                      ELSE
2148                         zx_tmp_fi3d_STD(i,k) = missing_val
2149                      ENDIF
2150                   ENDDO
2151                ENDDO !k=1, nlevSTD
2152             ENDIF
2153             CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d_STD,iff)
2154          endif
2155          CALL histwrite_phy(o_uxv,uvsumSTD(:,:,iff-6),iff)
2156          CALL histwrite_phy(o_vxq,vqsumSTD(:,:,iff-6),iff)
2157          CALL histwrite_phy(o_vxT,vTsumSTD(:,:,iff-6),iff)
2158          CALL histwrite_phy(o_wxq,wqsumSTD(:,:,iff-6),iff)
2159          CALL histwrite_phy(o_vxphi,vphisumSTD(:,:,iff-6),iff)
2160          CALL histwrite_phy(o_wxT,wTsumSTD(:,:,iff-6),iff)
2161          CALL histwrite_phy(o_uxu,u2sumSTD(:,:,iff-6),iff)
2162          CALL histwrite_phy(o_vxv,v2sumSTD(:,:,iff-6),iff)
2163          CALL histwrite_phy(o_TxT,T2sumSTD(:,:,iff-6),iff)
2164       ENDDO !nfiles
2165  ENDIF
2166#endif
2167#endif
2168#ifdef CPP_XIOS
2169  IF (ok_all_xml) THEN
2170!      DO iff=7, nfiles
2171
2172!         CALL histwrite_phy(o_tnondef,tnondef(:,:,3))
2173          CALL histwrite_phy(o_ta,tlevSTD(:,:))
2174          CALL histwrite_phy(o_zg,philevSTD(:,:))
2175          CALL histwrite_phy(o_hus,qlevSTD(:,:))
2176          CALL histwrite_phy(o_hur,rhlevSTD(:,:))
2177          CALL histwrite_phy(o_ua,ulevSTD(:,:))
2178          CALL histwrite_phy(o_va,vlevSTD(:,:))
2179          CALL histwrite_phy(o_wap,wlevSTD(:,:))
2180!         IF (vars_defined) THEN
2181!            DO k=1, nlevSTD
2182!               DO i=1, klon
2183!                  IF (tnondef(i,k,3).NE.missing_val) THEN
2184!                     IF (freq_outNMC(iff-6).LT.0) THEN
2185!                        freq_moyNMC(iff-6)=(mth_len*un_jour)/freq_calNMC(iff-6)
2186!                     ELSE
2187!                        freq_moyNMC(iff-6)=freq_outNMC(iff-6)/freq_calNMC(iff-6)
2188!                     ENDIF
2189!                     zx_tmp_fi3d_STD(i,k) = (100.*tnondef(i,k,3))/freq_moyNMC(iff-6)
2190!                  ELSE
2191!                     zx_tmp_fi3d_STD(i,k) = missing_val
2192!                  ENDIF
2193!               ENDDO
2194!            ENDDO
2195!         ENDIF
2196!         CALL histwrite_phy(o_psbg,zx_tmp_fi3d_STD)
2197          IF (vars_defined) THEN
2198             DO k=1, nlevSTD
2199                DO i=1, klon
2200                   IF (O3STD(i,k).NE.missing_val) THEN
2201                      zx_tmp_fi3d_STD(i,k) = O3STD(i,k) * 1.e+9
2202                   ELSE
2203                      zx_tmp_fi3d_STD(i,k) = missing_val
2204                   ENDIF
2205                ENDDO
2206             ENDDO !k=1, nlevSTD
2207          ENDIF
2208          CALL histwrite_phy(o_tro3,zx_tmp_fi3d_STD)
2209          IF (read_climoz == 2) THEN
2210             IF (vars_defined) THEN
2211                DO k=1, nlevSTD
2212                   DO i=1, klon
2213                      IF (O3daySTD(i,k).NE.missing_val) THEN
2214                         zx_tmp_fi3d_STD(i,k) = O3daySTD(i,k) * 1.e+9
2215                      ELSE
2216                         zx_tmp_fi3d_STD(i,k) = missing_val
2217                      ENDIF
2218                   ENDDO
2219                ENDDO !k=1, nlevSTD
2220             ENDIF
2221             CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d_STD)
2222          ENDIF
2223          CALL histwrite_phy(o_uxv,uvSTD(:,:))
2224          CALL histwrite_phy(o_vxq,vqSTD(:,:))
2225          CALL histwrite_phy(o_vxT,vTSTD(:,:))
2226          CALL histwrite_phy(o_wxq,wqSTD(:,:))
2227          CALL histwrite_phy(o_vxphi,vphiSTD(:,:))
2228          CALL histwrite_phy(o_wxT,wTSTD(:,:))
2229          CALL histwrite_phy(o_uxu,u2STD(:,:))
2230          CALL histwrite_phy(o_vxv,v2STD(:,:))
2231          CALL histwrite_phy(o_TxT,T2STD(:,:))
2232!      ENDDO !nfiles
2233  ENDIF
2234#endif
2235!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2236       IF (iflag_phytrac == 1 ) then
2237         IF (type_trac == 'lmdz' .OR. type_trac == 'repr' .OR. type_trac == 'coag') THEN
2238           DO iq=nqo+1, nqtot
2239             !--3D fields
2240             CALL histwrite_phy(o_trac(iq-nqo), tr_seri(:,:,iq-nqo))
2241             CALL histwrite_phy(o_dtr_vdf(iq-nqo),d_tr_cl(:,:,iq-nqo))
2242             CALL histwrite_phy(o_dtr_the(iq-nqo),d_tr_th(:,:,iq-nqo))
2243             CALL histwrite_phy(o_dtr_con(iq-nqo),d_tr_cv(:,:,iq-nqo))
2244             CALL histwrite_phy(o_dtr_lessi_impa(iq-nqo),d_tr_lessi_impa(:,:,iq-nqo))
2245             CALL histwrite_phy(o_dtr_lessi_nucl(iq-nqo),d_tr_lessi_nucl(:,:,iq-nqo))
2246             CALL histwrite_phy(o_dtr_insc(iq-nqo),d_tr_insc(:,:,iq-nqo))
2247             CALL histwrite_phy(o_dtr_bcscav(iq-nqo),d_tr_bcscav(:,:,iq-nqo))
2248             CALL histwrite_phy(o_dtr_evapls(iq-nqo),d_tr_evapls(:,:,iq-nqo))
2249             CALL histwrite_phy(o_dtr_ls(iq-nqo),d_tr_ls(:,:,iq-nqo))
2250             CALL histwrite_phy(o_dtr_trsp(iq-nqo),d_tr_trsp(:,:,iq-nqo))
2251             CALL histwrite_phy(o_dtr_sscav(iq-nqo),d_tr_sscav(:,:,iq-nqo))
2252             CALL histwrite_phy(o_dtr_sat(iq-nqo),d_tr_sat(:,:,iq-nqo))
2253             CALL histwrite_phy(o_dtr_uscav(iq-nqo),d_tr_uscav(:,:,iq-nqo))
2254            !--2D fields
2255             CALL histwrite_phy(o_dtr_dry(iq-nqo), flux_tr_dry(:,iq-nqo))
2256             zx_tmp_fi2d=0.
2257             IF (vars_defined) THEN
2258                DO k=1,klev
2259                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*tr_seri(:,k,iq-nqo)
2260                ENDDO
2261             ENDIF
2262#ifndef REPROBUS
2263             CALL histwrite_phy(o_trac_cum(iq-nqo), zx_tmp_fi2d)
2264#endif
2265           ENDDO !--iq
2266         ENDIF   !--type_trac
2267!
2268         IF (type_trac == 'co2i') THEN
2269           DO iq=nqo+1, nqtot
2270             !--3D fields
2271             CALL histwrite_phy(o_trac(iq-nqo), tr_seri(:,:,iq-nqo))
2272             CALL histwrite_phy(o_dtr_vdf(iq-nqo),d_tr_cl(:,:,iq-nqo))
2273             CALL histwrite_phy(o_dtr_the(iq-nqo),d_tr_th(:,:,iq-nqo))
2274             CALL histwrite_phy(o_dtr_con(iq-nqo),d_tr_cv(:,:,iq-nqo))
2275             !--2D fields
2276             !--CO2 burden
2277             zx_tmp_fi2d=0.
2278             IF (vars_defined) THEN
2279                DO k=1,klev
2280                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*tr_seri(:,k,iq-nqo)
2281                ENDDO
2282             ENDIF
2283             CALL histwrite_phy(o_trac_cum(iq-nqo), zx_tmp_fi2d)
2284           ENDDO !--iq
2285           !--CO2 net fluxes
2286           CALL histwrite_phy(o_flx_co2_land,  fco2_land)
2287           CALL histwrite_phy(o_flx_co2_ocean, fco2_ocean)
2288           CALL histwrite_phy(o_flx_co2_ff,    fco2_ff)
2289           CALL histwrite_phy(o_flx_co2_bb,    fco2_bb)
2290         ENDIF !--type_trac co2i
2291
2292         IF (type_trac == 'repr') THEN
2293#ifdef REPROBUS
2294           DO iq=1,nbnas
2295             CALL histwrite_phy(o_nas(iq), nas(:,:,iq))
2296           ENDDO
2297#endif
2298         ENDIF
2299
2300       ENDIF   !(iflag_phytrac==1)
2301
2302       IF (.NOT.vars_defined) THEN
2303          !$OMP MASTER
2304#ifndef CPP_IOIPSL_NO_OUTPUT
2305          DO iff=1,nfiles
2306             IF (clef_files(iff)) THEN
2307                CALL histend(nid_files(iff))
2308                ndex2d = 0
2309                ndex3d = 0
2310             ENDIF ! clef_files
2311          ENDDO !  iff
2312#endif
2313#ifdef CPP_XIOS
2314          !On finalise l'initialisation:
2315          CALL wxios_closedef()
2316#endif
2317          !$OMP END MASTER
2318          !$OMP BARRIER
2319          vars_defined = .TRUE.
2320
2321       ENDIF !--.NOT.vars_defined
2322
2323    ENDDO
2324
2325    IF (vars_defined) THEN
2326       ! On synchronise les fichiers pour IOIPSL
2327#ifndef CPP_IOIPSL_NO_OUTPUT
2328       !$OMP MASTER
2329       DO iff=1,nfiles
2330          IF (ok_sync .AND. clef_files(iff)) THEN
2331             CALL histsync(nid_files(iff))
2332          ENDIF
2333       END DO
2334       !$OMP END MASTER
2335#endif
2336    ENDIF
2337
2338  END SUBROUTINE phys_output_write
2339
2340END MODULE phys_output_write_mod
Note: See TracBrowser for help on using the repository browser.