source: LMDZ6/branches/contrails/libf/phylmd/phys_output_write_mod.F90 @ 5760

Last change on this file since 5760 was 5728, checked in by aborella, 2 weeks ago

Correction to rare floating point errors + added support for the sedimentation of contrails

  • 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: 131.0 KB
Line 
1!
2! $Id: phys_output_write_mod.F90 5728 2025-06-27 17:30:06Z lguez $
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,  &
9       flux_tr_wet_cv, flux_tr_wet, flux_tr_dry
10
11  ! Author: Abderrahmane IDELKADI (original include file)
12  ! Author: Laurent FAIRHEAD (transformation to module/subroutine)
13  ! Author: Ulysse GERARD (effective implementation)
14
15CONTAINS
16
17  ! ug Routine pour définir (lors du premier passage) ET sortir les variables
18  SUBROUTINE phys_output_write(itap, pdtphys, paprs, pphis, &
19       pplay, lmax_th, aerosol_couple,         &
20       ok_ade, ok_aie, ok_volcan, ivap, iliq, isol, ibs, ok_sync, &
21       ptconv, read_climoz, clevSTD, ptconvth, &
22       d_u, d_t, qx, d_qx, zmasse, flag_aerosol, flag_aerosol_strat, ok_cdnc, t, u1, v1)
23
24    ! This subroutine does the actual writing of diagnostics that were
25    ! defined and initialised in phys_output_mod.F90
26
27    USE dimphy, ONLY: klon, klev, klevp1, nbtersrf
28    USE infotrac_phy, ONLY: nbtr, nqtot, nqo, type_trac, tracers, niso, ntiso
29    USE strings_mod,  ONLY: maxlen
30    USE mod_phys_lmdz_para, ONLY: is_north_pole_phy,is_south_pole_phy
31    USE mod_grid_phy_lmdz, ONLY : nbp_lon, nbp_lat
32    USE time_phylmdz_mod, ONLY: day_step_phy, start_time, itau_phy
33    USE vertical_layers_mod, ONLY : ap, bp, aps, bps
34    USE phystokenc_mod, ONLY: offline
35    USE phys_output_ctrlout_mod, ONLY: o_phis, o_aire, is_ter, is_lic, is_oce, &
36         o_longitude, o_latitude, &
37         o_Ahyb, o_Bhyb,o_Ahyb_bounds, o_Bhyb_bounds, &
38         o_Ahyb_mid, o_Bhyb_mid,o_Ahyb_mid_bounds, o_Bhyb_mid_bounds, &
39         is_ave, is_sic, o_contfracATM, o_contfracOR, &
40         o_aireTER, o_flat, o_slp, o_ptstar, o_pt0, o_tsol, &
41         o_t2m, o_t2m_min, o_t2m_max, &
42         o_t2m_min_mon, o_t2m_max_mon, &
43         o_nt2mout, o_nt2moutfg, &
44         o_nq2mout, o_nq2moutfg, &
45         o_nu2mout, o_nu2moutfg, &
46         o_q2m, o_ustar, o_u10m, o_v10m, &
47         o_wind10m, o_wind10max, o_wind100m, o_gusts, o_sicf, &
48         o_loadfactor_wind_onshore, o_loadfactor_wind_offshore, &
49         o_psol, o_mass, o_qsurf, o_qsol, &
50         o_precip, o_rain_fall, o_rain_con, o_ndayrain, o_plul, o_pluc, o_plun, &
51         o_snow, o_msnow, o_fsnow, o_evap, o_snowerosion, o_ustart_lic, o_qsalt_lic, o_rhosnow_lic, o_bsfall, &
52         o_icesub_lic, &
53         o_ep,o_epmax_diag, & ! epmax_cape
54         o_tops, o_tops0, o_topl, o_topl0, &
55         o_SWupTOA, o_SWupTOAclr, o_SWupTOAcleanclr, o_SWdnTOA, o_fdiffSWdnSFC, &
56         o_SWdnTOAclr, o_nettop, o_SWup200, &
57         o_SWup200clr, o_SWdn200, o_SWdn200clr, &
58         o_LWupTOA, o_LWupTOAclr, &
59         o_LWup200, o_LWup200clr, o_LWdn200, &
60         o_LWdn200clr, o_sols, o_sols0, &
61         o_soll, o_radsol, o_soll0, o_SWupSFC, &
62         o_SWupSFCclr, o_SWupSFCcleanclr, o_SWdnSFC, o_SWdnSFCclr, o_SWdnSFCcleanclr, &
63         o_LWupSFC, o_LWdnSFC, o_LWupSFCclr, &
64         o_LWdnSFCclr, o_LWupTOAcleanclr, o_LWdnSFCcleanclr, o_bils, o_bils_diss, &
65         o_bils_ec,o_bils_ech, o_bils_tke, o_bils_kinetic, &
66         o_bils_latent, o_bils_enthalp, o_sens, &
67         o_fder, o_ftsoil, o_ffonte, o_fqcalving, o_fqfonte, o_mrroli, o_runofflic, &
68         o_taux, o_tauy, o_snowsrf, o_qsnow, &
69! SN runoff_diag
70         o_snowhgt, o_toice, o_sissnow, o_runoff, o_runoff_diag, &
71         o_albslw3, o_pourc_srf, o_fract_srf, &
72         o_taux_srf, o_tauy_srf, o_tsol_srf, &
73         o_evappot_srf, o_ustar_srf, o_u10m_srf, &
74         o_v10m_srf, o_t2m_srf, o_evap_srf, &
75         o_sens_srf, o_lat_srf, o_flw_srf, &
76         o_fsw_srf, o_wbils_srf, o_wbilo_srf, &
77         o_wevap_srf, o_wrain_srf, o_wsnow_srf, &
78         o_tke_srf, o_tke_max_srf,o_dltpbltke_srf, o_wstar, &
79         o_l_mixmin,o_l_mix, &
80         o_cdrm, o_cdrh, o_cldl, o_cldm, o_cldh, &
81         o_cldt, o_JrNt, o_cldljn, o_cldmjn, &
82         o_cldhjn, o_cldtjn, o_cldq, o_lwp, o_iwp, &
83         o_ue, o_ve, o_uq, o_vq, o_cape, o_pbase, &
84         o_uwat, o_vwat, &
85         o_ptop, o_fbase, o_plcl, o_plfc, &
86         o_wbeff, o_convoccur, o_cape_max, o_upwd, o_ep,o_epmax_diag, &
87         o_Mipsh, o_Ma, &
88         o_dnwd, o_dnwd0, o_ftime_deepcv, o_ftime_con, o_mc, &
89         o_prw, o_prlw, o_prsw, o_prbsw, o_water_budget, o_s_pblh, o_s_pblt, o_s_lcl, &
90         o_s_therm, o_uSTDlevs, o_vSTDlevs, &
91         o_wSTDlevs, o_zSTDlevs, o_qSTDlevs, &
92         o_tSTDlevs, epsfra, o_t_oce_sic, &
93         o_ale_bl, o_alp_bl, o_ale_wk, o_alp_wk, &
94         o_dtvdf_x    , o_dtvdf_w    , o_dqvdf_x    , o_dqvdf_w    , &
95         o_sens_x     , o_sens_w     , o_flat_x     , o_flat_w     , &
96         o_delta_tsurf, o_delta_tsurf_srf, &
97         o_cdragh_x   , o_cdragh_w   , o_cdragm_x   , o_cdragm_w   , &
98         o_kh         , o_kh_x       , o_kh_w       , &
99         o_ale, o_alp, o_cin, o_WAPE, o_wake_h, o_cv_gen, o_wake_dens, &
100         o_wake_s, o_wake_deltat, o_wake_deltaq, &
101         o_wake_omg, o_dtwak, o_dqwak, o_dqwak2d, o_Vprecip, &
102         o_qtaa, o_Clwaa, &
103         o_ftd, o_fqd, o_wdtrainA, o_wdtrainS, o_wdtrainM, &
104         o_n2, o_s2, o_strig, o_zcong, o_zlcl_th, o_proba_notrig, &
105         o_random_notrig, o_ale_bl_stat, &
106         o_ale_bl_trig, o_alp_bl_det, &
107         o_alp_bl_fluct_m, o_alp_bl_fluct_tke, &
108         o_alp_bl_conv, o_alp_bl_stat, &
109         o_coef_clos, o_coef_clos_eff, &
110         o_slab_qflux, o_tslab, o_slab_bils, &
111         o_slab_bilg, o_slab_sic, o_slab_tice, &
112         o_slab_hdiff, o_slab_ekman, o_slab_gm,  &
113         o_weakinv, o_dthmin, o_cldtau, &
114         o_cldemi, o_pr_con_l, o_pr_con_i, &
115         o_pr_lsc_l, o_pr_lsc_i, o_pr_bs, o_re, o_fl, &
116         o_rh2m, &
117         o_qsat2m, o_tpot, o_tpote, o_SWnetOR, &
118         o_LWdownOR, o_snowl, &
119         o_solldown, o_dtsvdfo, o_dtsvdft, &
120         o_dtsvdfg, o_dtsvdfi, o_z0m, o_z0h,  o_od443aer, o_od550aer, &
121         o_dryod550aer, o_od865aer, o_abs550aer, o_od550lt1aer, &
122         o_sconcso4, o_sconcno3, o_sconcoa, o_sconcbc, &
123         o_sconcss, o_sconcdust, o_concso4, o_concno3, &
124         o_concoa, o_concbc, o_concss, o_concdust, &
125         o_loadso4, o_loadoa, o_loadbc, o_loadss, &
126         o_loaddust, o_loadno3, o_tausumaero, &
127         o_drytausumaero, o_tausumaero_lw, &
128         o_topswad, o_topswad0, o_solswad, o_solswad0, &
129         o_toplwad, o_toplwad0, o_sollwad, o_sollwad0, &
130         o_swtoaas_nat, o_swsrfas_nat, &
131         o_swtoacs_nat, o_swtoaas_ant, &
132         o_swsrfas_ant, o_swtoacs_ant, &
133         o_swsrfcs_ant, o_swtoacf_nat, &
134         o_swsrfcf_nat, o_swtoacf_ant, &
135         o_swsrfcs_nat, o_swsrfcf_ant, &
136         o_swtoacf_zero, o_swsrfcf_zero, &
137         o_topswai, o_solswai, o_toplwai, o_sollwai, o_scdnc, &
138         o_cldncl, o_reffclws, o_reffclwc, o_solbnd, o_stratomask,&
139         o_cldnvi, o_lcc, o_lcc3d, o_lcc3dcon, &
140         o_lcc3dstra, o_icc3dcon, o_icc3dstra, &
141         o_cldicemxrat, o_cldwatmxrat, o_reffclwtop, o_ec550aer, &
142         o_lwcon, o_iwcon, o_temp, o_theta, &
143         o_ovapinit, o_ovap, o_oliq, o_ocond, o_oice, o_geop,o_qbs, &
144         o_vitu, o_vitv, o_vitw, o_pres, o_paprs, &
145         o_zfull, o_zhalf, o_rneb, o_rnebjn, o_rnebcon, &
146         o_rnebls, o_rneblsvol, o_rhum, o_rhl, o_rhi, o_ozone, o_ozone_light, &
147         o_distcltop, o_tempcltop,  &
148         o_pfraclr, o_pfracld, o_cldfraliq, o_sigma2_icefracturb, o_mean_icefracturb,  &
149         o_cldfraliqth, o_sigma2_icefracturbth, o_mean_icefracturbth,  &
150         o_qrainlsc, o_qsnowlsc, o_dqreva, o_dqrauto, o_dqrcol, o_dqrmelt, o_dqrfreez, &
151         o_dqssub, o_dqsauto, o_dqsagg, o_dqsrim, o_dqsmelt, o_dqsfreez, &
152         o_dqised, o_dcfsed, o_dqvcsed, &
153         o_duphy, o_dtphy, o_dqphy, o_dqphy2d, o_dqlphy, o_dqlphy2d, &
154         o_dqsphy, o_dqsphy2d, o_dqbsphy, o_dqbsphy2d, o_albe_srf, o_z0m_srf, o_z0h_srf, &
155         o_ages_srf, o_snow_srf, o_alb1, o_alb2, o_tke, o_tke_dissip, &
156         o_tke_max, o_kz, o_kz_max, o_clwcon, o_tke_shear, o_tke_buoy, o_tke_trans,  &
157         o_dtdyn, o_dqdyn, o_dqdyn2d, o_dqldyn, o_dqldyn2d, &
158         o_dqsdyn, o_dqsdyn2d, o_dqbsdyn, o_dqbsdyn2d, o_dudyn, o_dvdyn, &
159         o_dtcon, o_tntc, o_ducon, o_dvcon, &
160         o_dqcon, o_dqcon2d, o_tnhusc, o_tnhusc, o_dtlsc, &
161         o_dtlschr, o_dqlsc, o_dqlsc2d, o_beta_prec, &
162         o_dtlscth, o_dtlscst, o_dqlscth, o_dqlscth2d, &
163         o_dqlscst, o_dqlscst2d, o_plulth, o_plulst, &
164         o_ptconvth, o_lmaxth, o_dtvdf, &
165         o_dtdis, o_dqvdf, o_dqvdf2d, o_dteva, o_dqeva, o_dqeva2d, &
166         o_dqbsvdf, o_dtbs, o_dqbs, o_dqbsbs, &
167         o_ptconv, o_ratqs, o_dtthe, &
168         o_duthe, o_dvthe, o_ftime_th, &
169         o_f_th, o_e_th, o_w_th, o_q_th, &
170         o_a_th, o_cloudth_sth, o_cloudth_senv, &
171         o_cloudth_sigmath, o_cloudth_sigmaenv, &
172         o_d_th, o_f0_th, o_zmax_th, &
173         o_dqthe, o_dqthe2d, o_dtajs, o_dqajs, o_dqajs2d, o_dtswr, &
174         o_dtsw0, o_dtlwr, o_dtlw0, o_dtec, &
175         o_duvdf, o_dvvdf, o_duoro, o_dvoro, &
176         o_dtoro, o_dulif, o_dvlif, o_dtlif, &
177         o_du_gwd_hines, o_dv_gwd_hines, o_dthin, o_dqch4, o_rsu, &
178         o_du_gwd_front, o_dv_gwd_front, &
179         o_east_gwstress, o_west_gwstress, &
180         o_rsd, o_rlu, o_rld, o_rsucs, o_rsdcs, o_rsucsaf, o_rsdcsaf, &
181         o_rlucs, o_rldcs, o_tnt, o_tntr, &
182         o_tntscpbl, o_tnhus, o_tnhusscpbl, &
183         o_evu, o_h2o, o_mcd, o_dmc, o_ref_liq, &
184         o_ref_ice, o_rsut4co2, o_rlut4co2, &
185         o_rsutcs4co2, o_rlutcs4co2, o_rsu4co2, &
186         o_rlu4co2, o_rsucs4co2, o_rlucs4co2, &
187         o_rsd4co2, o_rld4co2, o_rsdcs4co2, &
188         o_rldcs4co2, o_tnondef, o_ta, o_zg, &
189         o_hus, o_hur, o_ua, o_va, o_wap, &
190         o_psbg, o_tro3, o_tro3_daylight, &
191         o_uxv, o_vxq, o_vxT, o_wxq, o_vxphi, &
192         o_wxT, o_uxu, o_vxv, o_TxT, o_trac, &
193         o_dtr_vdf, o_dtr_the, o_dtr_con, &
194         o_dtr_lessi_impa, o_dtr_lessi_nucl, &
195         o_dtr_insc, o_dtr_bcscav, o_dtr_evapls, &
196         o_dtr_ls, o_dtr_trsp, o_dtr_sscav, o_dtr_dry, &
197         o_dtr_sat, o_dtr_uscav, o_dtr_wet_cv, o_dtr_wet, &
198         o_trac_cum, o_du_gwd_rando, o_dv_gwd_rando, &
199         o_ustr_gwd_hines,o_vstr_gwd_hines,o_ustr_gwd_rando,o_vstr_gwd_rando, &
200         o_ustr_gwd_front,o_vstr_gwd_front, &
201         o_sens_prec_liq_oce, o_sens_prec_liq_sic, &
202         o_sens_prec_sol_oce, o_sens_prec_sol_sic, &
203         o_lat_prec_liq_oce, o_lat_prec_liq_sic, &
204         o_lat_prec_sol_oce, o_lat_prec_sol_sic, &
205         o_sza, &
206! AM
207         o_frac_tersrf, o_qsurf_tersrf, o_tsurf_new_tersrf, &
208         o_cdragm_tersrf, o_cdragh_tersrf, &
209         o_swnet_tersrf, o_lwnet_tersrf, o_fluxsens_tersrf, o_fluxlat_tersrf, &
210         o_tsoil_tersrf, &
211! Marine
212         o_map_prop_hc, o_map_prop_hist, o_map_emis_hc, o_map_iwp_hc, &
213         o_map_deltaz_hc, o_map_pcld_hc, o_map_tcld_hc, &
214         o_map_emis_hist, o_map_iwp_hist, o_map_deltaz_hist, &
215         o_map_rad_hist, &
216         o_map_emis_Cb, o_map_pcld_Cb, o_map_tcld_Cb, &
217         o_map_emis_ThCi, o_map_pcld_ThCi, o_map_tcld_ThCi, &
218         o_map_emis_Anv, o_map_pcld_Anv, o_map_tcld_Anv, &
219         o_map_ntot, o_map_hc,o_map_hist,o_map_Cb,o_map_ThCi,o_map_Anv, &
220#ifdef ISO
221! Isotopes
222         o_xtprecip,o_xtplul,o_xtpluc,o_xtovap,o_xtoliq,o_xtcond, &
223         o_xtrunoff_diag, &
224         o_xtevap,o_dxtdyn,o_dxtldyn,o_dxtcon,o_dxtlsc,o_dxteva, &
225         o_dxtajs,o_dxtvdf,o_dxtthe, o_dxtch4, &
226         o_dxtprod_nucl,o_dxtcosmo,o_dxtdecroiss, &
227         o_xtevap_srf, &
228#endif
229! Tropopause
230         o_alt_tropo, &
231         o_p_tropopause, o_z_tropopause, o_t_tropopause,  &
232         o_col_O3_strato, o_col_O3_tropo,                 &
233!-- LSCP - condensation and ice supersaturation variables
234         o_cfseri, o_dcfdyn, o_qvcseri, o_dqvcdyn, &
235         o_qsub, o_qissr, o_qcld, o_subfra, o_issrfra, o_gammacond, &
236         o_dcfsub, o_dcfcon, o_dcfmix, o_dqiadj, o_dqisub, o_dqicon, o_dqimix, &
237         o_dqvcadj, o_dqvcsub, o_dqvccon, o_dqvcmix, o_qsatl, o_qsati, &
238         o_issrfra100to150, o_issrfra150to200, o_issrfra200to250, &
239         o_issrfra250to300, o_issrfra300to400, o_issrfra400to500, &
240!-- LSCP - aviation variables
241         o_cflseri, o_dcfldyn, o_cfcseri, o_dcfcdyn, &
242         o_qtlseri, o_dqtldyn, o_qtcseri, o_dqtcdyn, o_dqavi, &
243         o_Tcritcont, o_qcritcont, o_potcontfraP, o_potcontfraNP, &
244         o_flight_dist, o_flight_h2o, o_qice_lincont, o_qice_circont, o_dcflcir, o_dqtlcir, &
245         o_dcflini, o_dqilini, o_dqtlini, o_dcflsub, o_dqilsub, o_dqtlsub, &
246         o_dcflmix, o_dqilmix, o_dqtlmix, &
247         o_dcflsed, o_dqilsed, o_dqtlsed, o_dcfcsed, o_dqicsed, o_dqtcsed, &
248         o_dcfcsub, o_dqicsub, o_dqtcsub, o_dcfcmix, o_dqicmix, o_dqtcmix, &
249         o_cldfra_nocont, o_cldtau_nocont, o_cldemi_nocont, o_cldh_nocont, &
250         o_contcov, o_conttau, o_contemi, o_iwp_nocont, o_iwc_nocont, o_ref_ice_nocont, &
251         o_tops_nocont, o_topl_nocont, o_sols_nocont, o_soll_nocont, o_nettop_nocont, &
252!--interactive CO2
253         o_flx_co2_ocean, o_flx_co2_ocean_cor, &
254         o_flx_co2_land, o_flx_co2_land_cor, &
255         o_flx_co2_ff, o_flx_co2_bb, &
256         o_delta_sst, o_delta_sal, o_ds_ns, o_dt_ns, o_dter, o_dser, o_tkt, &
257         o_tks, o_taur, o_sss, &
258!FC
259         o_zxfluxt,o_zxfluxq
260
261#ifdef CPP_ECRAD
262    USE phys_output_ctrlout_mod, ONLY:  &
263         o_soll0_s2,o_soll_s2,o_sols0_s2,o_sols_s2, &
264         o_topl0_s2,o_topl_s2,o_tops0_s2,o_tops_s2, &
265         o_SWupTOA_s2,o_SWupTOAclr_s2,o_cloud_cover_sw, &
266         o_cloud_cover_sw_s2,o_SWdnTOA_s2,o_SWdnTOAclr_s2, &
267         o_LWupSFCclr_s2, o_LWdnSFCclr_s2, o_SWupSFC_s2, &
268         o_SWupSFCclr_s2, o_SWdnSFC_s2, o_SWdnSFCclr_s2, &
269         o_LWupSFC_s2, o_LWdnSFC_s2, o_rlu_s2, o_rld_s2, &
270         o_rlucs_s2, o_rldcs_s2, o_rsu_s2, o_rsd_s2, &
271         o_rsucs_s2, o_rsdcs_s2   
272#endif
273
274    USE infotrac_phy, ONLY: nbtr_bin
275    USE phys_output_ctrlout_mod, ONLY:  &
276         o_budg_3D_nucl, o_budg_3D_cond_evap, o_budg_3D_ocs_to_so2, o_budg_3D_so2_to_h2so4, &
277         o_budg_sed_part, o_R2SO4, o_OCS_lifetime, o_SO2_lifetime, &
278         o_budg_3D_backgr_ocs, o_budg_3D_backgr_so2, &
279         o_budg_dep_dry_ocs, o_budg_dep_wet_ocs, &
280         o_budg_dep_dry_so2, o_budg_dep_wet_so2, &
281         o_budg_dep_dry_h2so4, o_budg_dep_wet_h2so4, &
282         o_budg_dep_dry_part, o_budg_dep_wet_part, &
283         o_budg_emi_ocs, o_budg_emi_so2, o_budg_emi_h2so4, o_budg_emi_part, &
284         o_budg_ocs_to_so2, o_budg_so2_to_h2so4, o_budg_h2so4_to_part, &
285         o_surf_PM25_sulf, o_ext_strat_443, o_tau_strat_443, o_ext_strat_550, o_tau_strat_550, &
286         o_ext_strat_670, o_tau_strat_670, o_ext_strat_765, o_tau_strat_765, o_vsed_aer, &
287         o_tau_strat_1020, o_ext_strat_1020, o_tau_strat_10um, o_ext_strat_10um, o_f_r_wet, &
288         o_SAD_sulfate, o_reff_sulfate, o_sulfmmr, o_nd_mode, o_sulfmmr_mode,o_SO2_chlm
289
290    USE lmdz_lscp_ini, ONLY: ok_poprecip, iflag_icefrac, ok_ice_sedim
291
292    USE phys_output_ctrlout_mod, ONLY: o_heat_volc, o_cool_volc !NL
293    USE phys_state_var_mod, ONLY: heat_volc, cool_volc !NL
294
295    USE phys_state_var_mod, ONLY: pctsrf, rain_fall, snow_fall, bs_fall,&
296         qsol, z0m, z0h, fevap, agesno, &
297         nday_rain, ndayrain_mth, rain_con, snow_con, &
298         topsw, toplw, toplw0, swup, swdn, solswfdiff, &
299         topsw0, swupc0, swdnc0, swup0, swdn0, SWup200, SWup200clr, &
300         SWdn200, SWdn200clr, LWup200, LWup200clr, &
301         LWdn200, LWdn200clr, solsw, solsw0, sollw, &
302         radsol, swradcorr, sollw0, sollwdown, sollw, gustiness, &
303         sollwdownclr, lwdnc0, lwdn0, ftsol, ustar, u10m, &
304         v10m, pbl_tke, wake_delta_pbl_TKE, &
305         delta_tsurf, &
306         wstar, cape, ema_pcb, ema_pct, &
307         ema_cbmf, Mipsh, Ma, fm_therm, ale_bl, alp_bl, ale, &
308         alp, cin, wake_pe, wake_dens, cv_gen, wake_s, wake_deltat, &
309         wake_deltaq, ftd, fqd, ale_bl_trig, albsol1, &
310         ale_wake, ale_bl_stat, &
311         rnebcon, wo, falb1, albsol2, coefh, clwcon0, &
312         ratqs, entr_therm, zqasc, detr_therm, f0, &
313         lwup, lwdn, lwupc0, lwup0, coefm, &
314         swupp, lwupp, swupc0p, swup0p, lwupc0p, lwup0p, swdnp, lwdnp, &
315         swdnc0p, swdn0p, lwdnc0p, lwdn0p, tnondef, O3sumSTD, uvsumSTD, &
316         vqsumSTD, vTsumSTD, O3daysumSTD, wqsumSTD, &
317         vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, &
318         T2sumSTD, nlevSTD, du_gwd_rando, du_gwd_front, &
319         ulevSTD, vlevSTD, wlevSTD, philevSTD, qlevSTD, tlevSTD, &
320         rhlevSTD, O3STD, O3daySTD, uvSTD, vqSTD, vTSTD, wqSTD, vphiSTD, &
321         wTSTD, u2STD, v2STD, T2STD, missing_val_nf90, delta_sal, ds_ns, &
322         frac_tersrf, qsurf_tersrf, tsurf_new_tersrf, cdragm_tersrf, cdragh_tersrf, &
323         swnet_tersrf, lwnet_tersrf, fluxsens_tersrf, fluxlat_tersrf, tsoil_tersrf, &
324#ifdef ISO
325         xtrain_con, xtsnow_con, xtrain_fall, xtsnow_fall, fxtevap, &
326#endif
327         dt_ns, delta_sst, dter, dser
328         
329! AI 08 2023 pour ECRAD 3Deffect
330#ifdef CPP_ECRAD
331    USE phys_state_var_mod, ONLY: &
332        sollw0_s2,sollw_s2,solsw0_s2,solsw_s2, &
333        toplw0_s2,toplw_s2,topsw0_s2,topsw_s2, &
334        toplw0_s2,toplw_s2,topsw0_s2,topsw_s2, &
335        swup0_s2,swup_s2,swdn_s2,swdn0_s2,sollwdownclr_s2, &
336        sollwdown_s2,lwdn0_s2,lwup_s2,lwdn_s2,lwup0_s2,lwdn0_s2
337    USE phys_output_var_mod, ONLY: cloud_cover_sw, &
338        cloud_cover_sw_s2
339#endif
340
341    USE phys_local_var_mod, ONLY: zxfluxlat, slp, ptstar, pt0, zxtsol, zt2m, &
342         zn2mout, t2m_min_mon, t2m_max_mon, evap, &
343         snowerosion, icesub_lic, zxustartlic, zxrhoslic, zxqsaltlic, &
344         l_mixmin,l_mix, pbl_eps, tke_shear, tke_buoy, tke_trans, &
345         zu10m, zv10m, zq2m, zustar, zxqsurf, &
346         rain_lsc, rain_num, snow_lsc, bils, sens, fder, &
347         zxffonte, zxfqcalving, zxfqfonte, zxrunofflic, fluxu, &
348         fluxv, zxsnow, qsnow, snowhgt, to_ice, &
349! SN runoff_diag
350         sissnow, runoff, runoff_diag, albsol3_lic, evap_pot, &
351         t2m, fluxt, fluxlat, fsollw, fsolsw, &
352         wfbils, wfevap, &
353         cdragm, cdragh, cldl, cldm, &
354         cldh, cldt, JrNt,   & ! only output names: cldljn,cldmjn,cldhjn,cldtjn
355         cldq, flwp, fiwp, ue, ve, uq, vq, &
356         uwat, vwat, &
357         plcl, plfc, wbeff, convoccur, upwd, dnwd, dnwd0, prw, prlw, prsw, prbsw, water_budget, &
358         s_pblh, s_pblt, s_lcl, s_therm, uwriteSTD, &
359         vwriteSTD, wwriteSTD, phiwriteSTD, qwriteSTD, &
360         twriteSTD, alp_wake, &
361!!         dtvdf_x    ,dtvdf_w    ,dqvdf_x    ,dqvdf_w    , &
362         d_t_vdf_x    ,d_t_vdf_w    ,d_q_vdf_x    ,d_q_vdf_w    , &
363         sens_x     ,sens_w     ,zxfluxlat_x,zxfluxlat_w, &
364         cdragh_x   ,cdragh_w   ,cdragm_x   ,cdragm_w   , &
365         kh         ,kh_x       ,kh_w       , &
366         wake_h, &
367         wake_omg, d_t_wake, d_q_wake, Vprecip, qtaa, Clw, &
368         coef_clos, coef_clos_eff, &
369         wdtrainA, wdtrainS, wdtrainM, n2, s2, strig, zcong, zlcl_th, proba_notrig, &
370         random_notrig, &
371         cf_seri, d_cf_dyn, qvc_seri, d_qvc_dyn, &
372         qsub, qissr, qcld, subfra, issrfra, gamma_cond, &
373         dcf_sub, dcf_con, dcf_mix, &
374         dqi_adj, dqi_sub, dqi_con, dqi_mix, &
375         dqvc_adj, dqvc_sub, dqvc_con, dqvc_mix, &
376         qsatliq, qsatice, &
377         issrfra100to150, issrfra150to200, issrfra200to250, &
378         issrfra250to300, issrfra300to400, issrfra400to500, &
379         cfl_seri, d_cfl_dyn, cfc_seri, d_cfc_dyn, &
380         qtl_seri, d_qtl_dyn, qtc_seri, d_qtc_dyn, d_q_avi, &
381         Tcritcont, qcritcont, potcontfraP, potcontfraNP, &
382         flight_dist, flight_h2o, qice_lincont, qice_circont, dcfl_cir, dqtl_cir, &
383         dcfl_ini, dqil_ini, dqtl_ini, dcfl_sub, dqil_sub, dqtl_sub, &
384         dcfl_mix, dqil_mix, dqtl_mix, &
385         dcfl_sed, dqil_sed, dqtl_sed, dcfc_sed, dqic_sed, dqtc_sed, &
386         dcfc_sub, dqic_sub, dqtc_sub, dcfc_mix, dqic_mix, dqtc_mix, &
387         cldfra_nocont, cldtau_nocont, cldemi_nocont, cldh_nocont, &
388         contcov, conttau, contemi, fiwp_nocont, fiwc_nocont, ref_ice_nocont, &
389         topsw_nocont, toplw_nocont, solsw_nocont, sollw_nocont, &
390         alp_bl_det, alp_bl_fluct_m, alp_bl_conv, &
391         alp_bl_stat, alp_bl_fluct_tke, slab_wfbils, &
392         weak_inversion, dthmin, cldtau, cldemi, &
393         pmflxr, pmflxs, prfl, psfl,bsfl, re, fl, rh2m, &
394         qsat2m, tpote, tpot, d_ts, od443aer, od550aer, dryod550aer, &
395         od865aer, abs550aer, od550lt1aer, sconcso4, sconcno3, &
396         sconcoa, sconcbc, sconcss, sconcdust, concso4, concno3, &
397         concoa, concbc, concss, concdust, loadso4, &
398         loadoa, loadbc, loadss, loaddust, loadno3, tausum_aero, drytausum_aero, &
399         topswad_aero, topswad0_aero, solswad_aero, &
400         solswad0_aero, topsw_aero, solsw_aero, &
401         topsw0_aero, solsw0_aero, topswcf_aero, &
402         solswcf_aero, topswai_aero, solswai_aero, &
403         toplwad_aero, toplwad0_aero, sollwad_aero, &
404         sollwad0_aero, toplwai_aero, sollwai_aero, &
405         stratomask,&
406         zfice, &
407         ec550aer, flwc, fiwc, t_seri, theta, q_seri, &
408         ql_seri, qs_seri, qbs_seri, tr_seri, qbs_seri,&
409         zphi, u_seri, v_seri, omega, cldfra, &
410         rneb, rnebjn, rneblsvol,  &
411         zx_rh, zx_rhl, zx_rhi, distcltop, temp_cltop, &
412         pfraclr, pfracld, cldfraliq, sigma2_icefracturb, mean_icefracturb, &
413         cldfraliqth, sigma2_icefracturbth, mean_icefracturbth, &
414         qraindiag, qsnowdiag, dqreva, dqssub, &
415         dqrauto,dqrcol,dqrmelt,dqrfreez, &
416         dqsauto,dqsagg,dqsrim,dqsmelt,dqsfreez, &
417         dqised, dcfsed, dqvcsed, &
418         d_t_dyn,  &
419         d_q_dyn,  d_ql_dyn, d_qs_dyn, d_qbs_dyn,  &
420         d_q_dyn2d,  d_ql_dyn2d, d_qs_dyn2d, d_qbs_dyn2d, &
421         d_u_dyn, d_v_dyn, d_t_con, d_t_ajsb, d_t_ajs, &
422         d_u_ajs, d_v_ajs, &
423         d_u_con, d_v_con, d_q_con, d_q_ajs, d_t_lsc, &
424         d_t_lwr,d_t_lw0,d_t_swr,d_t_sw0, &
425         d_t_eva, d_q_lsc, beta_prec, d_t_lscth, &
426         d_t_lscst, d_q_lscth, d_q_lscst, plul_th, &
427         plul_st, d_t_vdf, d_t_diss, d_q_vdf, d_q_eva, &
428         d_t_bsss, d_q_bsss, d_qbs_bsss, d_qbs_vdf, &
429         zw2, fraca, zmax_th, d_q_ajsb, d_t_ec, d_u_vdf, &
430         d_v_vdf, d_u_oro, d_v_oro, d_t_oro, d_u_lif, &
431         d_v_lif, d_t_lif, du_gwd_hines, dv_gwd_hines, d_t_hin, &
432         dv_gwd_rando, dv_gwd_front, &
433         east_gwstress, west_gwstress, &
434         d_q_ch4, pmfd, pmfu, ref_liq, ref_ice, rhwriteSTD, &
435#ifdef ISO
436        xtrain_lsc, xtsnow_lsc, xt_seri, xtl_seri,xts_seri,xtevap, &
437        d_xt_dyn,d_xtl_dyn,d_xt_con,d_xt_vdf,d_xt_ajsb, &
438        d_xt_lsc,d_xt_eva,d_xt_ch4, &
439        d_xt_ajs, d_xt_ajsb, &
440        d_xt_prod_nucl,d_xt_cosmo,d_xt_decroiss, &
441        xtrunoff_diag, &
442#endif
443         ep, epmax_diag, &  ! epmax_cape
444         p_tropopause, t_tropopause, z_tropopause, &
445         zxfluxt,zxfluxq, &
446! offline
447         da, mp, phi, wght_cvfd
448    USE phys_output_var_mod, ONLY: scdnc, cldncl, reffclwtop, lcc, reffclws, &
449         reffclwc, cldnvi, lcc3d, lcc3dcon, lcc3dstra, icc3dcon, icc3dstra
450   
451    USE phys_local_var_mod, ONLY:  &
452         budg_3D_nucl, budg_3D_cond_evap, budg_3D_ocs_to_so2, budg_3D_so2_to_h2so4, &
453         budg_sed_part, R2SO4, OCS_lifetime, SO2_lifetime, &
454         budg_3D_backgr_ocs, budg_3D_backgr_so2, &
455         budg_dep_dry_ocs, budg_dep_wet_ocs, &
456         budg_dep_dry_so2, budg_dep_wet_so2, &
457         budg_dep_dry_h2so4, budg_dep_wet_h2so4, &
458         budg_dep_dry_part, budg_dep_wet_part, &
459         budg_emi_ocs, budg_emi_so2, budg_emi_h2so4, budg_emi_part, &
460         budg_ocs_to_so2, budg_so2_to_h2so4, budg_h2so4_to_part, &
461         surf_PM25_sulf,  tau_strat_443, tau_strat_550, tau_strat_670, tau_strat_765, &
462         tausum_strat, vsed_aer, tau_strat_1020, tau_strat_10um, f_r_wet, &
463         SAD_sulfate, reff_sulfate, sulfmmr, nd_mode, sulfmmr_mode, SO2_chlm
464
465    USE carbon_cycle_mod, ONLY: fco2_ff, fco2_bb, fco2_land, fco2_ocean
466    USE carbon_cycle_mod, ONLY: fco2_ocean_cor, fco2_land_cor
467
468    USE phys_output_var_mod, ONLY: vars_defined, snow_o, zfra_o, bils_diss, &
469         bils_ec,bils_ech, bils_tke, bils_kinetic, bils_latent, bils_enthalp, &
470         itau_con, nfiles, clef_files, nid_files, dryaod_diag, &
471         zustr_gwd_hines, zvstr_gwd_hines,zustr_gwd_rando, zvstr_gwd_rando, &
472         zustr_gwd_front, zvstr_gwd_front, sza_o,    &
473         sens_prec_liq_o, sens_prec_sol_o, lat_prec_liq_o, lat_prec_sol_o, &
474         cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv, &
475! Marine
476         map_prop_hc, map_prop_hist, &
477         map_emis_hc,map_iwp_hc,map_deltaz_hc,&
478         map_pcld_hc,map_tcld_hc,&
479         map_emis_hist,map_iwp_hist,map_deltaz_hist,&
480         map_rad_hist,&
481         map_ntot,map_hc,map_hist,&
482         map_Cb,map_ThCi,map_Anv,&
483         map_emis_Cb,map_pcld_Cb,map_tcld_Cb,&
484         map_emis_ThCi,map_pcld_ThCi,map_tcld_ThCi,&
485         map_emis_Anv,map_pcld_Anv,map_tcld_Anv, &
486         alt_tropo, &
487!Ionela
488         ok_4xCO2atm, tkt, tks, taur, sss
489
490    USE ocean_slab_mod, ONLY: nslay, tslab, slab_bilg, tice, seaice, &
491        slab_ekman,slab_hdiff,slab_gm,dt_ekman, dt_hdiff, dt_gm, dt_qflux
492    USE pbl_surface_mod, ONLY: snow, ftsoil
493    USE indice_sol_mod, ONLY: nbsrf, nsoilout
494#ifdef ISO
495    USE isotopes_mod, ONLY: iso_HTO, isoName
496#endif
497    USE geometry_mod, ONLY: cell_area, latitude_deg, longitude_deg
498    USE surface_data, ONLY: type_ocean, version_ocean, ok_veget, landice_opt
499    USE aero_mod, ONLY: naero_tot, id_STRAT_phy
500    USE ioipsl, ONLY: histend, histsync
501    USE iophy, ONLY: set_itau_iophy, histwrite_phy
502    USE netcdf, ONLY: nf90_fill_real
503    USE print_control_mod, ONLY: prt_level,lunout
504    ! ug Pour les sorties XIOS
505    USE lmdz_xios
506    use wxios_mod, ONLY: wxios_closedef, missing_val_xios=>missing_val, wxios_set_context
507    USE phys_cal_mod, ONLY : mth_len
508
509#ifdef CPP_RRTM
510    USE YOESW, ONLY : RSUN
511#endif
512USE compbl_mod_h
513    USE alpale_mod
514        USE clesphys_mod_h
515    USE tracinca_mod, ONLY: config_inca
516    USE config_ocean_skin_m, ONLY: activate_ocean_skin
517
518    USE vertical_layers_mod, ONLY: presnivs
519    USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_STRATAER
520
521    USE yomcst_mod_h
522    USE phys_constants_mod, ONLY: dobson_u
523IMPLICIT NONE
524
525
526
527    ! Input
528    INTEGER :: itap, ivap, iliq, isol, ibs, read_climoz
529    INTEGER, DIMENSION(klon) :: lmax_th
530    LOGICAL :: aerosol_couple, ok_sync
531    LOGICAL :: ok_ade, ok_aie, ok_volcan
532    LOGICAL, DIMENSION(klon, klev) :: ptconv, ptconvth
533    REAL :: pdtphys
534    CHARACTER (LEN=4), DIMENSION(nlevSTD) :: clevSTD
535    REAL, DIMENSION(klon,nlevSTD) :: zx_tmp_fi3d_STD
536    REAL, DIMENSION(klon) :: pphis
537    REAL, DIMENSION(klon, klev) :: pplay, d_u, d_t
538    REAL, DIMENSION(klon, klev+1) :: paprs
539    REAL, DIMENSION(klon,klev,nqtot) :: qx, d_qx
540    REAL, DIMENSION(klon, klev) :: zmasse
541    INTEGER :: flag_aerosol_strat
542    INTEGER :: flag_aerosol
543    LOGICAL :: ok_cdnc
544    REAL, DIMENSION(klon,klev) :: t   ! output for phystoken - offline flux
545    REAL, DIMENSION(klon) :: u1, v1   ! output for phystoken - offline flux
546   
547    REAL, DIMENSION(3) :: freq_moyNMC
548
549    ! Local
550    INTEGER :: itau_w
551    INTEGER :: i, iinit, iinitend=1, iff, iq, nsrf, k, ll, naero, j
552    REAL, DIMENSION (klon) :: zx_tmp_fi2d, zpt_conv2d, wind100m
553    REAL, DIMENSION (klon,klev) :: zx_tmp_fi3d, zpt_conv
554    REAL, DIMENSION (klon,klev+1) :: zx_tmp_fi3d1
555    REAL, DIMENSION (klon,NSW) :: zx_tmp_fi3dsp
556    CHARACTER (LEN=4)              :: bb2
557    INTEGER, DIMENSION(nbp_lon*nbp_lat)  :: ndex2d
558    INTEGER, DIMENSION(nbp_lon*nbp_lat*klev) :: ndex3d
559!   REAL, PARAMETER :: missing_val=nf90_fill_real
560    REAL, DIMENSION(klev+1,2) :: Ahyb_bounds, Bhyb_bounds
561    REAL, DIMENSION(klev,2) :: Ahyb_mid_bounds, Bhyb_mid_bounds
562    INTEGER :: ilev
563    INTEGER, SAVE :: kmax_100m
564!$OMP THREADPRIVATE(kmax_100m)
565    REAL :: x
566    REAL :: missing_val
567    REAL, PARAMETER :: un_jour=86400.
568    CHARACTER(len=12) :: nvar   
569    INTEGER :: ISW, itr, ixt, it
570    CHARACTER*1 ch1
571    CHARACTER(LEN=maxlen) :: varname, dn
572    REAL, DIMENSION(klon,klev) :: coefh_stok
573   
574    LOGICAL, PARAMETER :: debug_strataer=.FALSE.
575    CHARACTER(LEN=maxlen) :: unt
576
577#ifdef ISO
578    CHARACTER(LEN=maxlen) :: outiso
579#endif
580
581    REAL,DIMENSION(klon,klev) :: z, dz
582    REAL,DIMENSION(klon)      :: zrho, zt
583
584    ! On calcul le nouveau tau:
585    itau_w = itau_phy + itap
586    ! On le donne à iophy pour que les histwrite y aient accès:
587    CALL set_itau_iophy(itau_w)
588
589 !   IF (.NOT.vars_defined) THEN
590       iinitend = 1
591 !   ELSE
592 !      iinitend = 1
593 !   ENDIF
594
595    IF (using_xios) CALL wxios_set_context
596
597    IF (using_xios) THEN
598      missing_val=missing_val_xios
599    ELSE
600      missing_val=missing_val_nf90
601    ENDIF
602
603    IF (.NOT.vars_defined) THEN
604      kmax_100m=1
605      DO k=1, klev-1
606        IF (presnivs(k).GT.0.97*101325.) kmax_100m = k !--finding out max level for 100 m with a good margin
607      ENDDO
608    ENDIF
609
610    Ahyb_bounds(1,1) = 0.
611    Ahyb_bounds(1,2) = aps(1)
612    Bhyb_bounds(1,1) = 1.
613    Bhyb_bounds(1,2) = bps(1)   
614
615    DO ilev=2,klev
616      Ahyb_bounds(ilev,1) = aps(ilev-1)
617      Ahyb_bounds(ilev,2) = aps(ilev)
618      Bhyb_bounds(ilev,1) = bps(ilev-1)
619      Bhyb_bounds(ilev,2) = bps(ilev)
620    ENDDO
621
622    Ahyb_bounds(klev+1,1) = aps(klev)
623    Ahyb_bounds(klev+1,2) = 0.
624    Bhyb_bounds(klev+1,1) = bps(klev)
625    Bhyb_bounds(klev+1,2) = 0.
626
627    DO ilev=1, klev
628      Ahyb_mid_bounds(ilev,1) = ap(ilev)
629      Ahyb_mid_bounds(ilev,2) = ap(ilev+1)
630      Bhyb_mid_bounds(ilev,1) = bp(ilev)
631      Bhyb_mid_bounds(ilev,2) = bp(ilev+1)
632    ENDDO
633
634
635    ! ug la boucle qui suit ne sert qu'une fois, pour l'initialisation, sinon il n'y a toujours qu'un seul passage:
636    DO iinit=1, iinitend
637!      print *,'IFF iinit=', iinit, iinitend
638       IF (using_xios) THEN
639         !$OMP MASTER
640         IF (vars_defined) THEN
641            IF (prt_level >= 10) then
642               write(lunout,*)"phys_output_write: call xios_update_calendar, itau_w=",itau_w
643            ENDIF
644!            CALL xios_update_calendar(itau_w)
645            CALL xios_update_calendar(itap)
646         ENDIF
647         !$OMP END MASTER
648         !$OMP BARRIER
649       ENDIF
650
651       ! On procède à l'écriture ou à la définition des nombreuses variables:
652!!! Champs 1D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
653       CALL histwrite_phy(o_phis, pphis)
654
655       zx_tmp_fi2d = cell_area
656       IF (is_north_pole_phy) then
657         zx_tmp_fi2d(1) = cell_area(1)/nbp_lon
658       ENDIF
659       IF (is_south_pole_phy) then
660         zx_tmp_fi2d(klon) = cell_area(klon)/nbp_lon
661       ENDIf
662       CALL histwrite_phy(o_aire, zx_tmp_fi2d)
663
664       IF (vars_defined) THEN
665          DO i=1, klon
666             zx_tmp_fi2d(i)=pctsrf(i,is_ter)+pctsrf(i,is_lic)
667          ENDDO
668       ENDIF
669
670       CALL histwrite_phy(o_contfracATM, zx_tmp_fi2d)
671       CALL histwrite_phy(o_contfracOR, pctsrf(:,is_ter))
672!
673       IF (using_xios) THEN
674
675         CALL histwrite_phy("R_ecc",R_ecc)
676         CALL histwrite_phy("R_peri",R_peri)
677         CALL histwrite_phy("R_incl",R_incl)
678         CALL histwrite_phy("solaire",solaire)
679         CALL histwrite_phy(o_Ahyb, ap)
680         CALL histwrite_phy(o_Bhyb, bp)
681         CALL histwrite_phy(o_Ahyb_bounds, Ahyb_bounds)
682         CALL histwrite_phy(o_Bhyb_bounds, Bhyb_bounds)
683         CALL histwrite_phy(o_Ahyb_mid, aps)
684         CALL histwrite_phy(o_Bhyb_mid, bps)
685         CALL histwrite_phy(o_Ahyb_mid_bounds, Ahyb_mid_bounds)
686         CALL histwrite_phy(o_Bhyb_mid_bounds, Bhyb_mid_bounds)
687         CALL histwrite_phy(o_longitude, longitude_deg)
688         CALL histwrite_phy(o_latitude, latitude_deg)
689!
690#ifdef CPP_RRTM
691         IF (iflag_rrtm.EQ.1) THEN
692           DO ISW=1, NSW
693             WRITE(ch1,'(i1)') ISW
694  !          zx_tmp_0d=RSUN(ISW)
695  !          CALL histwrite_phy("rsun"//ch1,zx_tmp_0d)
696             CALL histwrite_phy("rsun"//ch1,RSUN(ISW))
697           ENDDO
698         ENDIF
699#endif
700!
701         CALL histwrite_phy("co2_ppm",co2_ppm)
702         CALL histwrite_phy("CH4_ppb",CH4_ppb)
703         CALL histwrite_phy("N2O_ppb",N2O_ppb)
704         CALL histwrite_phy("CFC11_ppt",CFC11_ppt)
705         CALL histwrite_phy("CFC12_ppt",CFC12_ppt)
706!
707       ENDIF !using_xios
708
709!!! Champs 2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
710! Simulateur AIRS
711       IF (ok_airs) then
712         CALL histwrite_phy(o_alt_tropo,alt_tropo)
713 
714         CALL histwrite_phy(o_map_prop_hc,map_prop_hc)
715         CALL histwrite_phy(o_map_prop_hist,map_prop_hist)
716
717         CALL histwrite_phy(o_map_emis_hc,map_emis_hc)
718         CALL histwrite_phy(o_map_iwp_hc,map_iwp_hc)
719         CALL histwrite_phy(o_map_deltaz_hc,map_deltaz_hc)
720         CALL histwrite_phy(o_map_pcld_hc,map_pcld_hc)
721         CALL histwrite_phy(o_map_tcld_hc,map_tcld_hc)
722
723         CALL histwrite_phy(o_map_emis_hist,map_emis_hist)
724         CALL histwrite_phy(o_map_iwp_hist,map_iwp_hist)
725         CALL histwrite_phy(o_map_deltaz_hist,map_deltaz_hist)
726
727         CALL histwrite_phy(o_map_ntot,map_ntot)
728         CALL histwrite_phy(o_map_hc,map_hc)
729         CALL histwrite_phy(o_map_hist,map_hist)
730
731         CALL histwrite_phy(o_map_Cb,map_Cb)
732         CALL histwrite_phy(o_map_ThCi,map_ThCi)
733         CALL histwrite_phy(o_map_Anv,map_Anv)
734
735         CALL histwrite_phy(o_map_emis_Cb,map_emis_Cb)
736         CALL histwrite_phy(o_map_pcld_Cb,map_pcld_Cb)
737         CALL histwrite_phy(o_map_tcld_Cb,map_tcld_Cb)
738
739         CALL histwrite_phy(o_map_emis_ThCi,map_emis_ThCi)
740         CALL histwrite_phy(o_map_pcld_ThCi,map_pcld_ThCi)
741         CALL histwrite_phy(o_map_tcld_ThCi,map_tcld_ThCi)
742
743         CALL histwrite_phy(o_map_emis_Anv,map_emis_Anv)
744         CALL histwrite_phy(o_map_pcld_Anv,map_pcld_Anv)
745         CALL histwrite_phy(o_map_tcld_Anv,map_tcld_Anv)
746       ENDIF
747
748       CALL histwrite_phy(o_sza, sza_o)
749       CALL histwrite_phy(o_flat, zxfluxlat)
750       CALL histwrite_phy(o_ptstar, ptstar)
751       CALL histwrite_phy(o_pt0, pt0)
752       CALL histwrite_phy(o_slp, slp)
753       CALL histwrite_phy(o_tsol, zxtsol)
754       CALL histwrite_phy(o_t2m, zt2m)
755       CALL histwrite_phy(o_t2m_min, zt2m)
756       CALL histwrite_phy(o_t2m_max, zt2m)
757       CALL histwrite_phy(o_t2m_max_mon, t2m_max_mon)
758       CALL histwrite_phy(o_t2m_min_mon, t2m_min_mon)
759
760       IF (vars_defined) THEN
761          DO i=1, klon
762             zx_tmp_fi2d(i)=REAL(zn2mout(i,1))
763          ENDDO
764       ENDIF
765       CALL histwrite_phy(o_nt2mout, zx_tmp_fi2d)
766
767       IF (vars_defined) THEN
768          DO i=1, klon
769             zx_tmp_fi2d(i)=REAL(zn2mout(i,2))
770          ENDDO
771       ENDIF
772       CALL histwrite_phy(o_nt2moutfg, zx_tmp_fi2d)
773
774       IF (vars_defined) THEN
775          DO i=1, klon
776             zx_tmp_fi2d(i)=REAL(zn2mout(i,3))
777          ENDDO
778       ENDIF
779       CALL histwrite_phy(o_nq2mout, zx_tmp_fi2d)
780
781       IF (vars_defined) THEN
782          DO i=1, klon
783             zx_tmp_fi2d(i)=REAL(zn2mout(i,4))
784          ENDDO
785       ENDIF
786       CALL histwrite_phy(o_nq2moutfg, zx_tmp_fi2d)
787
788       IF (vars_defined) THEN
789          DO i=1, klon
790             zx_tmp_fi2d(i)=REAL(zn2mout(i,5))
791          ENDDO
792       ENDIF
793       CALL histwrite_phy(o_nu2mout, zx_tmp_fi2d)
794
795       IF (vars_defined) THEN
796          DO i=1, klon
797             zx_tmp_fi2d(i)=REAL(zn2mout(i,6))
798          ENDDO
799       ENDIF
800       CALL histwrite_phy(o_nu2moutfg, zx_tmp_fi2d)
801
802       IF (vars_defined) THEN
803          DO i=1, klon
804             zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
805          ENDDO
806       ENDIF
807       CALL histwrite_phy(o_wind10m, zx_tmp_fi2d)
808
809       IF (vars_defined) THEN
810          DO i=1, klon
811             zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
812          ENDDO
813       ENDIF
814       CALL histwrite_phy(o_wind10max, zx_tmp_fi2d)
815
816       CALL histwrite_phy(o_gusts, gustiness)
817
818       IF (vars_defined) THEN
819          DO k = 1, kmax_100m                                      !--we could stop much lower
820            zrho(:) = pplay(:,k)/t_seri(:,k)/RD                    ! air density in kg/m3
821            dz(:,k) = (paprs(:,k)-paprs(:,k+1))/zrho(:)/RG         ! layer thickness in m
822            IF (k==1) THEN
823              z(:,1) = (paprs(:,1)-pplay(:,1))/zrho(:)/RG          ! altitude middle of first layer in m
824              zt(:)  = dz(:,1)                                     ! altitude top of first layer in m
825            ELSE
826              z(:,k) = zt(:) + (paprs(:,k)-pplay(:,k))/zrho(:)/RG  ! altitude middle of layer k in m
827              zt(:)  = zt(:) + dz(:,k)                             ! altitude top of layer k in m
828            ENDIF
829          ENDDO
830          wind100m(:)=missing_val
831          DO k=1, kmax_100m-1                                      !--we could stop much lower
832            DO i=1,klon
833              IF (z(i,k).LT.100..AND.z(i,k+1).GE.100.) THEN
834                wind100m(i)=SQRT( (u_seri(i,k)+(100.-z(i,k))/(z(i,k+1)-z(i,k))*(u_seri(i,k+1)-u_seri(i,k)))**2.0 + &
835                                  (v_seri(i,k)+(100.-z(i,k))/(z(i,k+1)-z(i,k))*(v_seri(i,k+1)-v_seri(i,k)))**2.0 )
836              ENDIF
837            ENDDO
838          ENDDO
839       ENDIF
840       CALL histwrite_phy(o_wind100m, wind100m)
841
842       IF (vars_defined) THEN
843         !--polynomial fit for 14,Vestas,1074,V136/3450 kW windmill - Olivier
844         DO i=1,klon
845           IF (pctsrf(i,is_ter).GT.0.05 .AND. wind100m(i).NE.missing_val) THEN
846             x=wind100m(i)
847             IF (x.LE.3.0 .OR. x.GE.22.5) THEN
848               zx_tmp_fi2d(i)=0.0
849             ELSE IF (x.GE.10.0) THEN
850               zx_tmp_fi2d(i)=1.0
851             ELSE
852               zx_tmp_fi2d(i)= 10.73 + x*(-14.69 + x*(8.339 + x*(-2.59 + x*(0.4893 + x*(-0.05898 + x*(0.004627 + &
853                               x*(-0.0002352 + x*(7.478e-06 + x*(-1.351e-07 + x*(1.059e-09))))))))))
854               zx_tmp_fi2d(i)=MIN(MAX(zx_tmp_fi2d(i),0.0),1.0)
855             ENDIF
856           ELSE
857             zx_tmp_fi2d(i)=missing_val
858           ENDIF
859         ENDDO
860       ENDIF
861       CALL histwrite_phy(o_loadfactor_wind_onshore, zx_tmp_fi2d)
862
863       IF (vars_defined) THEN
864         !--polynomial fit for 14,Vestas,867,V164/8000 kW - Olivier
865         DO i=1,klon
866           IF (pctsrf(i,is_oce).GT.0.05 .AND. wind100m(i).NE.missing_val) THEN
867             x=wind100m(i)
868             IF (x.LE.3.0 .OR. x.GE.25.5) THEN
869               zx_tmp_fi2d(i)=0.0
870             ELSE IF (x.GE.12.5) THEN
871               zx_tmp_fi2d(i)=1.0
872             ELSE
873               zx_tmp_fi2d(i)= 20.59 + x*(-22.39 + x*(10.25 + x*(-2.601 + x*(0.4065 + x*(-0.04099 + x*(0.002716 + &
874                               x*(-0.0001175 + x*(3.195e-06 + x*(-4.959e-08 + x*(3.352e-10))))))))))
875               zx_tmp_fi2d(i)=MIN(MAX(zx_tmp_fi2d(i),0.0),1.0)
876             ENDIF
877           ELSE
878             zx_tmp_fi2d(i)=missing_val
879           ENDIF
880         ENDDO
881       ENDIF
882       CALL histwrite_phy(o_loadfactor_wind_offshore, zx_tmp_fi2d)
883
884       IF (vars_defined) THEN
885          DO i = 1, klon
886             zx_tmp_fi2d(i) = pctsrf(i,is_sic)
887          ENDDO
888       ENDIF
889       CALL histwrite_phy(o_sicf, zx_tmp_fi2d)
890       CALL histwrite_phy(o_q2m, zq2m)
891       !IF (vars_defined) zx_tmp_fi2d = zustar
892       !set ustar output variable as directly related to actual surface stress
893       IF (vars_defined) THEN
894          zx_tmp_fi2d=0.
895          DO nsrf=1,nbsrf
896             zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*((t_seri(:,1)*RD/pplay(:,1))**0.5)*(fluxu(:,1,nsrf)**2+fluxv(:,1,nsrf)**2)**0.25
897          ENDDO           
898       ENDIF
899       CALL histwrite_phy(o_ustar, zx_tmp_fi2d)
900       CALL histwrite_phy(o_u10m, zu10m)
901       CALL histwrite_phy(o_v10m, zv10m)
902
903       IF (vars_defined) THEN
904          DO i = 1, klon
905             zx_tmp_fi2d(i) = paprs(i,1)
906          ENDDO
907       ENDIF
908       CALL histwrite_phy(o_psol, zx_tmp_fi2d)
909       CALL histwrite_phy(o_mass, zmasse)
910       CALL histwrite_phy(o_qsurf, zxqsurf)
911
912       IF (.NOT. ok_veget) THEN
913          CALL histwrite_phy(o_qsol, qsol)
914       ENDIF
915
916       IF (vars_defined) THEN
917          IF (ok_bs) THEN
918             DO i = 1, klon
919             zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i) + bs_fall(i)
920             ENDDO
921          ELSE
922             DO i = 1, klon
923             zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
924             ENDDO
925          ENDIF
926       ENDIF
927
928       CALL histwrite_phy(o_precip, zx_tmp_fi2d)
929       CALL histwrite_phy(o_rain_fall, rain_fall)
930       CALL histwrite_phy(o_ndayrain, ndayrain_mth)
931
932       ! epmax_cape:
933!       CALL histwrite_phy(o_epmax_diag, epmax_diag)
934       CALL histwrite_phy(o_ep, ep)
935
936       IF (vars_defined) THEN
937          DO i = 1, klon
938             zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i)
939          ENDDO
940       ENDIF
941       CALL histwrite_phy(o_plul, zx_tmp_fi2d)
942       CALL histwrite_phy(o_plun, rain_num)
943
944       IF (vars_defined) THEN
945          DO i = 1, klon
946             zx_tmp_fi2d(i) = rain_con(i) + snow_con(i)
947          ENDDO
948       ENDIF
949       CALL histwrite_phy(o_pluc, zx_tmp_fi2d)
950       CALL histwrite_phy(o_rain_con, rain_con)
951       CALL histwrite_phy(o_snow, snow_fall)
952       CALL histwrite_phy(o_msnow, zxsnow)
953       CALL histwrite_phy(o_fsnow, zfra_o)
954       CALL histwrite_phy(o_evap, evap)
955       CALL histwrite_phy(o_icesub_lic, icesub_lic)
956
957       IF (ok_bs) THEN
958           CALL histwrite_phy(o_bsfall, bs_fall)     
959           CALL histwrite_phy(o_snowerosion, snowerosion)
960           CALL histwrite_phy(o_ustart_lic, zxustartlic)
961           CALL histwrite_phy(o_rhosnow_lic, zxrhoslic)
962           CALL histwrite_phy(o_qsalt_lic, zxqsaltlic)
963       ENDIF
964
965       IF (vars_defined) THEN
966         zx_tmp_fi2d = topsw*swradcorr
967       ENDIF
968       CALL histwrite_phy(o_tops, zx_tmp_fi2d)
969
970       IF (vars_defined) THEN
971         zx_tmp_fi2d = topsw0*swradcorr
972       ENDIF
973       CALL histwrite_phy(o_tops0, zx_tmp_fi2d)
974
975       CALL histwrite_phy(o_topl, toplw)
976       CALL histwrite_phy(o_topl0, toplw0)
977
978       !AM heterogeneous continental sub-surfaces
979       IF (iflag_hetero_surf .EQ. 2) THEN
980         iq = 0
981         DO j = 1, nbtersrf
982           IF (vars_defined) zx_tmp_fi2d(1 : klon) = frac_tersrf( 1 : klon, j)
983           CALL histwrite_phy(o_frac_tersrf(j), zx_tmp_fi2d)
984           IF (vars_defined) zx_tmp_fi2d(1 : klon) = qsurf_tersrf( 1 : klon, j)
985           CALL histwrite_phy(o_qsurf_tersrf(j), zx_tmp_fi2d)
986           IF (vars_defined) zx_tmp_fi2d(1 : klon) = tsurf_new_tersrf( 1 : klon, j)
987           CALL histwrite_phy(o_tsurf_new_tersrf(j), zx_tmp_fi2d)
988           IF (vars_defined) zx_tmp_fi2d(1 : klon) = cdragm_tersrf( 1 : klon, j)
989           CALL histwrite_phy(o_cdragm_tersrf(j), zx_tmp_fi2d)
990           IF (vars_defined) zx_tmp_fi2d(1 : klon) = cdragh_tersrf( 1 : klon, j)
991           CALL histwrite_phy(o_cdragh_tersrf(j), zx_tmp_fi2d)
992           IF (vars_defined) zx_tmp_fi2d(1 : klon) = swnet_tersrf( 1 : klon, j)
993           CALL histwrite_phy(o_swnet_tersrf(j), zx_tmp_fi2d)
994           IF (vars_defined) zx_tmp_fi2d(1 : klon) = lwnet_tersrf( 1 : klon, j)
995           CALL histwrite_phy(o_lwnet_tersrf(j), zx_tmp_fi2d)
996           IF (vars_defined) zx_tmp_fi2d(1 : klon) = fluxsens_tersrf( 1 : klon, j)
997           CALL histwrite_phy(o_fluxsens_tersrf(j), zx_tmp_fi2d)
998           IF (vars_defined) zx_tmp_fi2d(1 : klon) = fluxlat_tersrf( 1 : klon, j)
999           CALL histwrite_phy(o_fluxlat_tersrf(j), zx_tmp_fi2d)
1000           !
1001           DO k = 1, nsoilout
1002             iq = iq + 1
1003             IF (vars_defined) zx_tmp_fi2d(1 : klon) = tsoil_tersrf( 1 : klon, k, j)
1004             CALL histwrite_phy(o_tsoil_tersrf(iq), zx_tmp_fi2d)
1005           ENDDO
1006         ENDDO
1007       ENDIF
1008       ! add tsoil as output
1009       IF (iflag_hetero_surf .GT. 0) THEN
1010         DO k = 1, nsoilout
1011           IF (vars_defined) zx_tmp_fi2d(1 : klon) = ftsoil( 1 : klon, k, is_ter)
1012           CALL histwrite_phy(o_ftsoil(k), zx_tmp_fi2d)
1013         ENDDO
1014       ENDIF
1015       !AM
1016
1017! offline
1018       IF (using_xios) THEN
1019         IF (offline) THEN
1020
1021            coefh_stok(:,1)      = cdragh(:)
1022            coefh_stok(:,2:klev) = coefh(:,2:klev, is_ave)
1023         
1024            CALL histwrite_phy('upwd_stok', upwd)
1025            CALL histwrite_phy('t_stok', t)
1026            CALL histwrite_phy('fm_th_stok', fm_therm(:,1:klev))
1027            CALL histwrite_phy('en_th_stok', entr_therm)
1028            CALL histwrite_phy('da_stok',da )
1029            CALL histwrite_phy('mp_stok',mp )
1030            CALL histwrite_phy('dnwd_stok', dnwd)
1031            CALL histwrite_phy('wght_stok', wght_cvfd)
1032            CALL histwrite_phy('coefh_stok', coefh_stok)
1033            CALL histwrite_phy('yu1_stok', u1)
1034            CALL histwrite_phy('yv1_stok', v1)
1035
1036            DO k=1,klev
1037               IF (k<10) THEN
1038                  WRITE(nvar,'(i1)') k
1039               ELSE IF (k<100) THEN
1040                  WRITE(nvar,'(i2)') k
1041               ELSE
1042                  WRITE(nvar,'(i3)') k
1043               ENDIF
1044               nvar='phi_lev'//trim(nvar)
1045               CALL histwrite_phy(nvar,phi(:,:,k))
1046            ENDDO
1047         
1048         ENDIF
1049       ENDIF
1050       
1051       IF (vars_defined) THEN
1052          zx_tmp_fi2d(:) = swup(:,klevp1)*swradcorr(:)
1053       ENDIF
1054       CALL histwrite_phy(o_SWupTOA, zx_tmp_fi2d)
1055
1056       IF (vars_defined) THEN
1057          zx_tmp_fi2d(:) = swup0(:,klevp1)*swradcorr(:)
1058       ENDIF
1059       CALL histwrite_phy(o_SWupTOAclr, zx_tmp_fi2d)
1060
1061       IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN
1062          IF (vars_defined) THEN
1063             zx_tmp_fi2d(:) = swupc0(:,klevp1)*swradcorr(:)
1064          ENDIF
1065          CALL histwrite_phy(o_SWupTOAcleanclr, zx_tmp_fi2d)
1066       ENDIF
1067
1068       IF (vars_defined) THEN
1069          zx_tmp_fi2d(:) = swdn(:,klevp1)*swradcorr(:)
1070       ENDIF
1071       CALL histwrite_phy(o_SWdnTOA, zx_tmp_fi2d)
1072
1073       IF (vars_defined) THEN
1074          zx_tmp_fi2d(:) = swdn0(:,klevp1)*swradcorr(:)
1075       ENDIF
1076       CALL histwrite_phy(o_SWdnTOAclr, zx_tmp_fi2d)
1077
1078       IF (vars_defined) THEN
1079          zx_tmp_fi2d(:) = topsw(:)*swradcorr(:)-toplw(:)
1080       ENDIF
1081       CALL histwrite_phy(o_nettop, zx_tmp_fi2d)
1082       
1083       IF (vars_defined) THEN
1084          zx_tmp_fi2d = SWup200*swradcorr
1085       ENDIF
1086       CALL histwrite_phy(o_SWup200, zx_tmp_fi2d)
1087       
1088       IF (vars_defined) THEN
1089          zx_tmp_fi2d = SWup200clr*swradcorr
1090       ENDIF
1091       CALL histwrite_phy(o_SWup200clr, zx_tmp_fi2d)
1092       
1093       IF (vars_defined) THEN
1094          zx_tmp_fi2d = SWdn200*swradcorr
1095       ENDIF
1096       CALL histwrite_phy(o_SWdn200, zx_tmp_fi2d)
1097       
1098       
1099       IF (vars_defined) THEN
1100          zx_tmp_fi2d = SWdn200clr*swradcorr
1101       ENDIF
1102       CALL histwrite_phy(o_SWdn200clr, zx_tmp_fi2d)
1103       
1104       CALL histwrite_phy(o_LWup200, LWup200)
1105       CALL histwrite_phy(o_LWup200clr, LWup200clr)
1106       CALL histwrite_phy(o_LWdn200, LWdn200)
1107       CALL histwrite_phy(o_LWdn200clr, LWdn200clr)
1108       
1109       IF (vars_defined) THEN
1110          zx_tmp_fi2d = solsw*swradcorr
1111       ENDIF
1112       CALL histwrite_phy(o_sols, zx_tmp_fi2d)
1113       
1114       IF (vars_defined) THEN
1115          zx_tmp_fi2d = solsw0*swradcorr
1116       ENDIF
1117       CALL histwrite_phy(o_sols0, zx_tmp_fi2d)
1118       CALL histwrite_phy(o_soll, sollw)
1119       CALL histwrite_phy(o_soll0, sollw0)
1120       CALL histwrite_phy(o_radsol, radsol)
1121
1122       IF (vars_defined) THEN
1123          zx_tmp_fi2d(:) = swup(:,1)*swradcorr(:)
1124       ENDIF
1125       CALL histwrite_phy(o_SWupSFC, zx_tmp_fi2d)
1126
1127       IF (vars_defined) THEN
1128          zx_tmp_fi2d(:) = swup0(:,1)*swradcorr(:)
1129       ENDIF
1130       CALL histwrite_phy(o_SWupSFCclr, zx_tmp_fi2d)
1131
1132       IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN
1133          IF (vars_defined) THEN
1134             zx_tmp_fi2d(:) = swupc0(:,1)*swradcorr(:)
1135          ENDIF
1136          CALL histwrite_phy(o_SWupSFCcleanclr, zx_tmp_fi2d)
1137       ENDIF
1138
1139       IF (vars_defined) THEN
1140          zx_tmp_fi2d(:) = swdn(:,1)*swradcorr(:)
1141       ENDIF
1142       CALL histwrite_phy(o_SWdnSFC, zx_tmp_fi2d)
1143
1144       IF (vars_defined) THEN
1145          zx_tmp_fi2d(:) = swdn0(:,1)*swradcorr(:)
1146       ENDIF
1147       CALL histwrite_phy(o_SWdnSFCclr, zx_tmp_fi2d)
1148
1149       IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN
1150          IF (vars_defined) THEN
1151             zx_tmp_fi2d(:) = swdnc0(:,1)*swradcorr(:)
1152          ENDIF
1153          CALL histwrite_phy(o_SWdnSFCcleanclr, zx_tmp_fi2d)
1154       ENDIF
1155
1156       CALL histwrite_phy(o_fdiffSWdnSFC, solswfdiff)
1157
1158       IF (vars_defined) THEN
1159          zx_tmp_fi2d(:)=sollwdown(:)-sollw(:)
1160       ENDIF
1161       CALL histwrite_phy(o_LWupSFC, zx_tmp_fi2d)
1162       CALL histwrite_phy(o_LWdnSFC, sollwdown)
1163
1164       IF (vars_defined) THEN
1165          sollwdownclr(1:klon) = -1.*lwdn0(1:klon,1)
1166          zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon)
1167       ENDIF
1168       CALL histwrite_phy(o_LWupSFCclr, zx_tmp_fi2d)
1169       CALL histwrite_phy(o_LWdnSFCclr, sollwdownclr)
1170       
1171       IF (vars_defined) THEN
1172          zx_tmp_fi2d(:) = lwup(:,klevp1)
1173       ENDIF
1174       CALL histwrite_phy(o_LWupTOA, zx_tmp_fi2d)
1175       
1176       IF (vars_defined) THEN
1177          zx_tmp_fi2d(:) = lwup0(:,klevp1)
1178       ENDIF
1179       CALL histwrite_phy(o_LWupTOAclr, zx_tmp_fi2d)
1180
1181       IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN
1182          IF (vars_defined) THEN
1183             zx_tmp_fi2d(:) = lwupc0(:,klevp1)
1184          ENDIF
1185          CALL histwrite_phy(o_LWupTOAcleanclr, zx_tmp_fi2d)
1186       ENDIF
1187
1188       IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN
1189          IF (vars_defined) THEN
1190             zx_tmp_fi2d(:) = -1.*lwdnc0(:,1)
1191          ENDIF
1192          CALL histwrite_phy(o_LWdnSFCcleanclr, zx_tmp_fi2d)
1193       ENDIF
1194
1195!AI 08 2023 Ecrad 3Deffect
1196#ifdef CPP_ECRAD
1197     CALL histwrite_phy(o_cloud_cover_sw, cloud_cover_sw)
1198     IF (ok_3Deffect) THEN
1199       CALL histwrite_phy(o_cloud_cover_sw_s2, cloud_cover_sw_s2)
1200       IF (vars_defined) THEN
1201          zx_tmp_fi2d = solsw_s2*swradcorr
1202       ENDIF
1203       CALL histwrite_phy(o_sols_s2, zx_tmp_fi2d)
1204       IF (vars_defined) THEN
1205          zx_tmp_fi2d = solsw0_s2*swradcorr
1206       ENDIF
1207       CALL histwrite_phy(o_sols0_s2, zx_tmp_fi2d)
1208       CALL histwrite_phy(o_soll_s2, sollw_s2)
1209       CALL histwrite_phy(o_soll0_s2, sollw0_s2)
1210       IF (vars_defined) THEN
1211         zx_tmp_fi2d = topsw_s2*swradcorr
1212       ENDIF
1213       CALL histwrite_phy(o_tops_s2, zx_tmp_fi2d)
1214
1215       IF (vars_defined) THEN
1216         zx_tmp_fi2d = topsw0_s2*swradcorr
1217       ENDIF
1218       CALL histwrite_phy(o_tops0_s2, zx_tmp_fi2d)
1219
1220       CALL histwrite_phy(o_topl_s2, toplw_s2)
1221       CALL histwrite_phy(o_topl0_s2, toplw0_s2)
1222
1223       IF (vars_defined) THEN
1224          zx_tmp_fi2d(:) = swup_s2(:,klevp1)*swradcorr(:)
1225       ENDIF
1226       CALL histwrite_phy(o_SWupTOA_s2, zx_tmp_fi2d)
1227
1228       IF (vars_defined) THEN
1229          zx_tmp_fi2d(:) = swup0_s2(:,klevp1)*swradcorr(:)
1230       ENDIF
1231       CALL histwrite_phy(o_SWupTOAclr_s2, zx_tmp_fi2d)
1232
1233       IF (vars_defined) THEN
1234          zx_tmp_fi2d(:) = swdn_s2(:,klevp1)*swradcorr(:)
1235       ENDIF
1236       CALL histwrite_phy(o_SWdnTOA_s2, zx_tmp_fi2d)
1237
1238       IF (vars_defined) THEN
1239          zx_tmp_fi2d(:) = swdn0_s2(:,klevp1)*swradcorr(:)
1240       ENDIF
1241       CALL histwrite_phy(o_SWdnTOAclr_s2, zx_tmp_fi2d)
1242
1243       IF (vars_defined) THEN
1244          zx_tmp_fi2d(:)=sollwdown_s2(:)-sollw_s2(:)
1245       ENDIF
1246       CALL histwrite_phy(o_LWupSFC_s2, zx_tmp_fi2d)
1247       CALL histwrite_phy(o_LWdnSFC_s2, sollwdown_s2)
1248
1249       IF (vars_defined) THEN
1250          sollwdownclr_s2(1:klon) = -1.*lwdn0_s2(1:klon,1)
1251          zx_tmp_fi2d(1:klon)=sollwdownclr_s2(1:klon)-sollw0_s2(1:klon)
1252       ENDIF
1253       CALL histwrite_phy(o_LWupSFCclr_s2, zx_tmp_fi2d)
1254       CALL histwrite_phy(o_LWdnSFCclr_s2, sollwdownclr_s2)
1255
1256       IF (vars_defined) THEN
1257          zx_tmp_fi2d(:) = swup_s2(:,1)*swradcorr(:)
1258       ENDIF
1259       CALL histwrite_phy(o_SWupSFC_s2, zx_tmp_fi2d)
1260
1261       IF (vars_defined) THEN
1262          zx_tmp_fi2d(:) = swup0_s2(:,1)*swradcorr(:)
1263       ENDIF
1264       CALL histwrite_phy(o_SWupSFCclr_s2, zx_tmp_fi2d)
1265
1266       IF (vars_defined) THEN
1267          zx_tmp_fi2d(:) = swdn_s2(:,1)*swradcorr(:)
1268       ENDIF
1269       CALL histwrite_phy(o_SWdnSFC_s2, zx_tmp_fi2d)
1270
1271       IF (vars_defined) THEN
1272          zx_tmp_fi2d(:) = swdn0_s2(:,1)*swradcorr(:)
1273       ENDIF
1274       CALL histwrite_phy(o_SWdnSFCclr_s2, zx_tmp_fi2d)
1275
1276       IF (vars_defined) THEN
1277         DO k=1, klevp1
1278           zx_tmp_fi3d1(:,k)=swup_s2(:,k)*swradcorr(:)
1279         ENDDO
1280       ENDIF
1281       CALL histwrite_phy(o_rsu_s2, zx_tmp_fi3d1)
1282
1283       IF (vars_defined) THEN
1284         DO k=1, klevp1
1285           zx_tmp_fi3d1(:,k)=swdn_s2(:,k)*swradcorr(:)
1286         ENDDO
1287       ENDIF
1288       CALL histwrite_phy(o_rsd_s2, zx_tmp_fi3d1)
1289
1290       IF (vars_defined) THEN
1291         DO k=1, klevp1
1292           zx_tmp_fi3d1(:,k)=swup0_s2(:,k)*swradcorr(:)
1293         ENDDO
1294       ENDIF
1295       CALL histwrite_phy(o_rsucs_s2, zx_tmp_fi3d1)
1296
1297       IF (vars_defined) THEN
1298         DO k=1, klevp1
1299           zx_tmp_fi3d1(:,k)=swdn0_s2(:,k)*swradcorr(:)
1300         ENDDO
1301       ENDIF
1302       CALL histwrite_phy(o_rsdcs_s2, zx_tmp_fi3d1)
1303
1304       CALL histwrite_phy(o_rlu_s2, lwup_s2)
1305       CALL histwrite_phy(o_rld_s2, lwdn_s2)
1306       CALL histwrite_phy(o_rlucs_s2, lwup0_s2)
1307       CALL histwrite_phy(o_rldcs_s2, lwdn0_s2)
1308    ENDIF !ok_3Deffect
1309#endif       
1310
1311       CALL histwrite_phy(o_bils, bils)
1312       CALL histwrite_phy(o_bils_diss, bils_diss)
1313       CALL histwrite_phy(o_bils_ec, bils_ec)
1314       CALL histwrite_phy(o_bils_ech, bils_ech)
1315       CALL histwrite_phy(o_bils_tke, bils_tke)
1316       CALL histwrite_phy(o_bils_kinetic, bils_kinetic)
1317       CALL histwrite_phy(o_bils_latent, bils_latent)
1318       CALL histwrite_phy(o_bils_enthalp, bils_enthalp)
1319
1320       IF (vars_defined) THEN
1321          zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
1322       ENDIF
1323       CALL histwrite_phy(o_sens, zx_tmp_fi2d)
1324       CALL histwrite_phy(o_fder, fder)
1325       CALL histwrite_phy(o_ffonte, zxffonte)
1326       CALL histwrite_phy(o_fqcalving, zxfqcalving)
1327       CALL histwrite_phy(o_fqfonte, zxfqfonte)
1328       IF (vars_defined) THEN
1329          zx_tmp_fi2d(1:klon)=(zxfqfonte(1:klon)+rain_fall(1:klon))*pctsrf(1:klon,is_lic)
1330       ENDIF
1331       CALL histwrite_phy(o_mrroli, zx_tmp_fi2d)
1332       CALL histwrite_phy(o_runofflic, zxrunofflic)
1333       IF (vars_defined) THEN
1334          zx_tmp_fi2d=0.
1335          DO nsrf=1,nbsrf
1336             zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxu(:,1,nsrf)
1337          ENDDO
1338       ENDIF
1339       CALL histwrite_phy(o_taux, zx_tmp_fi2d)
1340
1341       IF (vars_defined) THEN
1342          zx_tmp_fi2d=0.
1343          DO nsrf=1,nbsrf
1344             zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxv(:,1,nsrf)
1345          ENDDO
1346       ENDIF
1347       CALL histwrite_phy(o_tauy, zx_tmp_fi2d)
1348
1349       DO nsrf = 1, nbsrf
1350
1351          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
1352          CALL histwrite_phy(o_pourc_srf(nsrf), zx_tmp_fi2d)
1353          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
1354          CALL histwrite_phy(o_fract_srf(nsrf), zx_tmp_fi2d)
1355          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
1356          CALL histwrite_phy(o_taux_srf(nsrf), zx_tmp_fi2d)
1357          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
1358          CALL histwrite_phy(o_tauy_srf(nsrf), zx_tmp_fi2d)
1359          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
1360          CALL histwrite_phy(o_tsol_srf(nsrf), zx_tmp_fi2d)
1361          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = evap_pot( 1 : klon, nsrf)
1362          CALL histwrite_phy(o_evappot_srf(nsrf), zx_tmp_fi2d)
1363          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = ustar(1 : klon, nsrf)
1364          CALL histwrite_phy(o_ustar_srf(nsrf), zx_tmp_fi2d)
1365          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = u10m(1 : klon, nsrf)
1366          CALL histwrite_phy(o_u10m_srf(nsrf), zx_tmp_fi2d)
1367          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = v10m(1 : klon, nsrf)
1368          CALL histwrite_phy(o_v10m_srf(nsrf), zx_tmp_fi2d)
1369          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = t2m(1 : klon, nsrf)
1370          CALL histwrite_phy(o_t2m_srf(nsrf), zx_tmp_fi2d)
1371          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fevap(1 : klon, nsrf)
1372          CALL histwrite_phy(o_evap_srf(nsrf), zx_tmp_fi2d)
1373          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
1374          CALL histwrite_phy(o_sens_srf(nsrf), zx_tmp_fi2d)
1375          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
1376          CALL histwrite_phy(o_lat_srf(nsrf), zx_tmp_fi2d)
1377          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf)
1378          CALL histwrite_phy(o_flw_srf(nsrf), zx_tmp_fi2d)
1379          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf)
1380          CALL histwrite_phy(o_fsw_srf(nsrf), zx_tmp_fi2d)
1381          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf)
1382          CALL histwrite_phy(o_wbils_srf(nsrf), zx_tmp_fi2d)
1383          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = (fevap(1:klon,nsrf)-(rain_fall(1:klon)+snow_fall(1:klon)))*pctsrf(1:klon,nsrf)
1384          CALL histwrite_phy(o_wbilo_srf(nsrf), zx_tmp_fi2d)
1385          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = wfevap( 1 : klon, nsrf)
1386          CALL histwrite_phy(o_wevap_srf(nsrf), zx_tmp_fi2d)
1387          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = rain_fall(1:klon)*pctsrf(1:klon,nsrf)
1388          CALL histwrite_phy(o_wrain_srf(nsrf), zx_tmp_fi2d)
1389          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = snow_fall(1:klon)*pctsrf(1:klon,nsrf)
1390          CALL histwrite_phy(o_wsnow_srf(nsrf), zx_tmp_fi2d)
1391
1392          IF (iflag_pbl > 1) THEN
1393             CALL histwrite_phy(o_tke_srf(nsrf),  pbl_tke(:,1:klev,nsrf))
1394             !CALL histwrite_phy(o_l_mix(nsrf),  l_mix(:,1:klev,nsrf))
1395             CALL histwrite_phy(o_l_mixmin(nsrf),  l_mixmin(:,1:klev,nsrf))
1396             CALL histwrite_phy(o_tke_max_srf(nsrf),  pbl_tke(:,1:klev,nsrf))
1397          ENDIF
1398!jyg<
1399          IF (iflag_pbl > 1 .AND. iflag_wake>=1  .AND. iflag_pbl_split >=1) THEN
1400             CALL histwrite_phy(o_dltpbltke_srf(nsrf), wake_delta_pbl_TKE(:,1:klev,nsrf))
1401          ENDIF
1402!>jyg
1403!          IF (iflag_pbl > 1 .AND. ifl_pbltree  >=1 ) THEN
1404!       CALL histwrite_phy(o_treedrg_srf(nsrf), treedrg(:,1:klev,nsrf))
1405!            ENDIF
1406
1407       ENDDO
1408
1409
1410        IF (iflag_pbl > 1) THEN
1411          zx_tmp_fi3d=0.
1412          IF (vars_defined) THEN
1413             DO nsrf=1,nbsrf
1414                DO k=1,klev
1415                   zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k) &
1416                        +pctsrf(:,nsrf)*pbl_eps(:,k,nsrf)
1417                ENDDO
1418             ENDDO
1419          ENDIF
1420         
1421          CALL histwrite_phy(o_tke_dissip, zx_tmp_fi3d)   
1422
1423          zx_tmp_fi3d=0.
1424          IF (vars_defined) THEN
1425             DO nsrf=1,nbsrf
1426                DO k=1,klev
1427                   zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k) &
1428                        +pctsrf(:,nsrf)*tke_shear(:,k,nsrf)
1429                ENDDO
1430             ENDDO
1431          ENDIF
1432
1433          CALL histwrite_phy(o_tke_shear, zx_tmp_fi3d)
1434
1435          zx_tmp_fi3d=0.
1436          IF (vars_defined) THEN
1437             DO nsrf=1,nbsrf
1438                DO k=1,klev
1439                   zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k) &
1440                        +pctsrf(:,nsrf)*tke_buoy(:,k,nsrf)
1441                ENDDO
1442             ENDDO
1443          ENDIF
1444
1445          CALL histwrite_phy(o_tke_buoy, zx_tmp_fi3d)
1446
1447
1448          zx_tmp_fi3d=0.
1449          IF (vars_defined) THEN
1450             DO nsrf=1,nbsrf
1451                DO k=1,klev
1452                   zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k) &
1453                        +pctsrf(:,nsrf)*tke_trans(:,k,nsrf)
1454                ENDDO
1455             ENDDO
1456          ENDIF
1457
1458          CALL histwrite_phy(o_tke_trans, zx_tmp_fi3d)
1459
1460       ENDIF
1461
1462       IF (vars_defined) zx_tmp_fi2d(1 : klon) = sens_prec_liq_o(1 : klon, 1)
1463       CALL histwrite_phy(o_sens_prec_liq_oce, zx_tmp_fi2d)       
1464       IF (vars_defined) zx_tmp_fi2d(1 : klon) = sens_prec_liq_o(1 : klon, 2)
1465       CALL histwrite_phy(o_sens_prec_liq_sic, zx_tmp_fi2d)       
1466       IF (vars_defined) zx_tmp_fi2d(1 : klon) = sens_prec_sol_o(1 : klon, 1)
1467       CALL histwrite_phy(o_sens_prec_sol_oce, zx_tmp_fi2d)       
1468       IF (vars_defined) zx_tmp_fi2d(1 : klon) = sens_prec_sol_o(1 : klon, 2)
1469       CALL histwrite_phy(o_sens_prec_sol_sic, zx_tmp_fi2d)       
1470
1471       IF (vars_defined) zx_tmp_fi2d(1 : klon) = lat_prec_liq_o(1 : klon, 1)
1472       CALL histwrite_phy(o_lat_prec_liq_oce, zx_tmp_fi2d)       
1473       IF (vars_defined) zx_tmp_fi2d(1 : klon) = lat_prec_liq_o(1 : klon, 2)
1474       CALL histwrite_phy(o_lat_prec_liq_sic, zx_tmp_fi2d)       
1475       IF (vars_defined) zx_tmp_fi2d(1 : klon) = lat_prec_sol_o(1 : klon, 1)
1476       CALL histwrite_phy(o_lat_prec_sol_oce, zx_tmp_fi2d)       
1477       IF (vars_defined) zx_tmp_fi2d(1 : klon) = lat_prec_sol_o(1 : klon, 2)
1478       CALL histwrite_phy(o_lat_prec_sol_sic, zx_tmp_fi2d)       
1479
1480       DO nsrf=1,nbsrf+1
1481          CALL histwrite_phy(o_wstar(nsrf), wstar(1 : klon, nsrf))
1482       ENDDO
1483
1484       CALL histwrite_phy(o_cdrm, cdragm)
1485       CALL histwrite_phy(o_cdrh, cdragh)
1486       CALL histwrite_phy(o_cldl, cldl)
1487       CALL histwrite_phy(o_cldm, cldm)
1488       CALL histwrite_phy(o_cldh, cldh)
1489       CALL histwrite_phy(o_cldt, cldt)
1490       CALL histwrite_phy(o_JrNt, JrNt)
1491       
1492       IF (vars_defined)  zx_tmp_fi2d=cldl*JrNt     
1493       CALL histwrite_phy(o_cldljn, zx_tmp_fi2d)
1494       
1495       IF (vars_defined)  zx_tmp_fi2d=cldm*JrNt     
1496       CALL histwrite_phy(o_cldmjn, zx_tmp_fi2d)
1497       
1498       IF (vars_defined)  zx_tmp_fi2d=cldh*JrNt
1499       CALL histwrite_phy(o_cldhjn, zx_tmp_fi2d)
1500       
1501       IF (vars_defined)  zx_tmp_fi2d=cldt*JrNt
1502       CALL histwrite_phy(o_cldtjn, zx_tmp_fi2d)
1503       
1504       CALL histwrite_phy(o_cldq, cldq)
1505       IF (vars_defined)       zx_tmp_fi2d(1:klon) = flwp(1:klon)
1506       CALL histwrite_phy(o_lwp, zx_tmp_fi2d)
1507       IF (vars_defined)       zx_tmp_fi2d(1:klon) = fiwp(1:klon)
1508       CALL histwrite_phy(o_iwp, zx_tmp_fi2d)
1509       CALL histwrite_phy(o_ue, ue)
1510       CALL histwrite_phy(o_ve, ve)
1511       CALL histwrite_phy(o_uq, uq)
1512       CALL histwrite_phy(o_vq, vq)
1513       CALL histwrite_phy(o_uwat, uwat)
1514       CALL histwrite_phy(o_vwat, vwat)
1515       IF (iflag_con.GE.3) THEN ! sb
1516          CALL histwrite_phy(o_cape, cape)
1517          CALL histwrite_phy(o_pbase, ema_pcb)
1518          CALL histwrite_phy(o_ptop, ema_pct)
1519          CALL histwrite_phy(o_fbase, ema_cbmf)
1520          IF (iflag_con /= 30) THEN
1521             CALL histwrite_phy(o_plcl, plcl)
1522             CALL histwrite_phy(o_plfc, plfc)
1523             CALL histwrite_phy(o_wbeff, wbeff)
1524             CALL histwrite_phy(o_convoccur, convoccur)
1525          ENDIF
1526
1527          CALL histwrite_phy(o_cape_max, cape)
1528
1529          CALL histwrite_phy(o_coef_clos, coef_clos)
1530          CALL histwrite_phy(o_coef_clos_eff, coef_clos_eff)
1531          CALL histwrite_phy(o_upwd, upwd)
1532          CALL histwrite_phy(o_Ma, Ma)
1533          CALL histwrite_phy(o_dnwd, dnwd)
1534          CALL histwrite_phy(o_dnwd0, dnwd0)
1535          !! The part relative to the frequency of occurence of convection
1536          !! is now grouped with the part relative to thermals and shallow
1537          !! convection (output of the 3 fields: ftime_deepcv, ftime_th and
1538          !!  ftime_con).
1539          IF (vars_defined) THEN
1540             IF (iflag_thermals>=1)THEN
1541                zx_tmp_fi3d=dnwd+dnwd0+upwd+fm_therm(:,1:klev)
1542             ELSE
1543                zx_tmp_fi3d=dnwd+dnwd0+upwd
1544             ENDIF
1545          ENDIF
1546          CALL histwrite_phy(o_mc, zx_tmp_fi3d)
1547       ENDIF !iflag_con .GE. 3
1548       CALL histwrite_phy(o_prw, prw)
1549       CALL histwrite_phy(o_prlw, prlw)
1550       CALL histwrite_phy(o_prsw, prsw)
1551       IF (ok_bs) THEN
1552       CALL histwrite_phy(o_prbsw, prbsw)
1553       ENDIF
1554       CALL histwrite_phy(o_water_budget, water_budget)
1555       CALL histwrite_phy(o_s_pblh, s_pblh)
1556       CALL histwrite_phy(o_s_pblt, s_pblt)
1557       CALL histwrite_phy(o_s_lcl, s_lcl)
1558       CALL histwrite_phy(o_s_therm, s_therm)
1559       !IM : Les champs suivants (s_capCL, s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F
1560       !       IF (o_s_capCL%flag(iff)<=lev_files(iff)) THEN
1561       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1562       !    $o_s_capCL%name,itau_w,s_capCL)
1563       !       ENDIF
1564       !       IF (o_s_oliqCL%flag(iff)<=lev_files(iff)) THEN
1565       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1566       !    $o_s_oliqCL%name,itau_w,s_oliqCL)
1567       !       ENDIF
1568       !       IF (o_s_cteiCL%flag(iff)<=lev_files(iff)) THEN
1569       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1570       !    $o_s_cteiCL%name,itau_w,s_cteiCL)
1571       !       ENDIF
1572       !       IF (o_s_trmb1%flag(iff)<=lev_files(iff)) THEN
1573       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1574       !    $o_s_trmb1%name,itau_w,s_trmb1)
1575       !       ENDIF
1576       !       IF (o_s_trmb2%flag(iff)<=lev_files(iff)) THEN
1577       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1578       !    $o_s_trmb2%name,itau_w,s_trmb2)
1579       !       ENDIF
1580       !       IF (o_s_trmb3%flag(iff)<=lev_files(iff)) THEN
1581       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1582       !    $o_s_trmb3%name,itau_w,s_trmb3)
1583       !       ENDIF
1584
1585       IF (.NOT. using_xios) THEN
1586         IF (.NOT.ok_all_xml) THEN
1587           ! ATTENTION, LES ANCIENS HISTWRITE ONT ETES CONSERVES EN ATTENDANT MIEUX:
1588           ! Champs interpolles sur des niveaux de pression
1589            DO iff=1, nfiles
1590              ll=0
1591              DO k=1, nlevSTD
1592                bb2=clevSTD(k)
1593                  IF (bb2.EQ."850".OR.bb2.EQ."700".OR. &
1594                       bb2.EQ."500".OR.bb2.EQ."200".OR. &
1595                       bb2.EQ."100".OR. &
1596                       bb2.EQ."50".OR.bb2.EQ."10") THEN
1597
1598                      ! a refaire correctement !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1599                      ll=ll+1
1600                      CALL histwrite_phy(o_uSTDlevs(ll),uwriteSTD(:,k,iff), iff)
1601                      CALL histwrite_phy(o_vSTDlevs(ll),vwriteSTD(:,k,iff), iff)
1602                      CALL histwrite_phy(o_wSTDlevs(ll),wwriteSTD(:,k,iff), iff)
1603                      CALL histwrite_phy(o_zSTDlevs(ll),phiwriteSTD(:,k,iff), iff)
1604                      CALL histwrite_phy(o_qSTDlevs(ll),qwriteSTD(:,k,iff), iff)
1605                      CALL histwrite_phy(o_tSTDlevs(ll),twriteSTD(:,k,iff), iff)
1606
1607                  ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
1608              ENDDO
1609            ENDDO
1610         ENDIF
1611       ENDIF
1612
1613
1614       IF (using_xios) THEN
1615         IF (ok_all_xml) THEN
1616           !XIOS  CALL xios_get_field_attr("u850",default_value=missing_val)
1617!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1618            ll=0
1619            DO k=1, nlevSTD
1620              bb2=clevSTD(k)
1621              IF (bb2.EQ."850".OR.bb2.EQ."700".OR. &
1622                  bb2.EQ."500".OR.bb2.EQ."200".OR. &
1623                  bb2.EQ."100".OR. &
1624                  bb2.EQ."50".OR.bb2.EQ."10") THEN
1625                  ll=ll+1
1626                  CALL histwrite_phy(o_uSTDlevs(ll),ulevSTD(:,k))
1627                  CALL histwrite_phy(o_vSTDlevs(ll),vlevSTD(:,k))
1628                  CALL histwrite_phy(o_wSTDlevs(ll),wlevSTD(:,k))
1629                  CALL histwrite_phy(o_zSTDlevs(ll),philevSTD(:,k))
1630                  CALL histwrite_phy(o_qSTDlevs(ll),qlevSTD(:,k))
1631                  CALL histwrite_phy(o_tSTDlevs(ll),tlevSTD(:,k))
1632              ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
1633            ENDDO
1634         ENDIF
1635       ENDIF
1636
1637       IF (vars_defined) THEN
1638          DO i=1, klon
1639             IF (pctsrf(i,is_oce).GT.epsfra.OR. &
1640                  pctsrf(i,is_sic).GT.epsfra) THEN
1641                zx_tmp_fi2d(i) = (ftsol(i, is_oce) * pctsrf(i,is_oce)+ &
1642                     ftsol(i, is_sic) * pctsrf(i,is_sic))/ &
1643                     (pctsrf(i,is_oce)+pctsrf(i,is_sic))
1644             ELSE
1645                zx_tmp_fi2d(i) = 273.15
1646             ENDIF
1647          ENDDO
1648       ENDIF
1649       CALL histwrite_phy(o_t_oce_sic, zx_tmp_fi2d)
1650
1651       ! Couplage convection-couche limite
1652       IF (iflag_con.GE.3) THEN
1653          IF (iflag_coupl>=1) THEN
1654             CALL histwrite_phy(o_ale_bl, ale_bl)
1655             CALL histwrite_phy(o_alp_bl, alp_bl)
1656          ENDIF !iflag_coupl>=1
1657       ENDIF !(iflag_con.GE.3)
1658       ! Wakes
1659       IF (iflag_con.EQ.3) THEN
1660          CALL histwrite_phy(o_Mipsh, Mipsh)
1661          IF (iflag_wake>=1) THEN
1662             CALL histwrite_phy(o_ale_wk, ale_wake)
1663             CALL histwrite_phy(o_alp_wk, alp_wake)
1664             IF (iflag_pbl_split>=1) THEN
1665!!               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=dtvdf_x(1:klon,1:klev)/pdtphys
1666!!               CALL histwrite_phy(o_dtvdf_x    ,zx_tmp_fi3d)
1667!!               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=dtvdf_w(1:klon,1:klev)/pdtphys
1668!!               CALL histwrite_phy(o_dtvdf_w    ,zx_tmp_fi3d)
1669!!               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=dqvdf_x(1:klon,1:klev)/pdtphys
1670!!               CALL histwrite_phy(o_dqvdf_x    ,zx_tmp_fi3d)
1671!!               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=dqvdf_w(1:klon,1:klev)/pdtphys
1672!
1673               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf_x(1:klon,1:klev)/pdtphys
1674               CALL histwrite_phy(o_dtvdf_x    ,zx_tmp_fi3d)
1675               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf_w(1:klon,1:klev)/pdtphys
1676               CALL histwrite_phy(o_dtvdf_w    ,zx_tmp_fi3d)
1677               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf_x(1:klon,1:klev)/pdtphys
1678               CALL histwrite_phy(o_dqvdf_x    ,zx_tmp_fi3d)
1679               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf_w(1:klon,1:klev)/pdtphys
1680!
1681               CALL histwrite_phy(o_dqvdf_w    ,zx_tmp_fi3d)
1682       IF (vars_defined)  zx_tmp_fi2d(1:klon)=-1*sens_x(1:klon)
1683               CALL histwrite_phy(o_sens_x     ,zx_tmp_fi2d)
1684       IF (vars_defined)  zx_tmp_fi2d(1:klon)=-1*sens_w(1:klon)
1685               CALL histwrite_phy(o_sens_w     ,zx_tmp_fi2d)
1686               CALL histwrite_phy(o_flat_x     ,zxfluxlat_x)
1687               CALL histwrite_phy(o_flat_w     ,zxfluxlat_w)
1688          zx_tmp_fi2d=0.
1689          IF (vars_defined) THEN
1690             DO nsrf=1,nbsrf
1691                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:) &
1692                        +pctsrf(:,nsrf)*delta_tsurf(:,nsrf)
1693             ENDDO
1694          ENDIF
1695               CALL histwrite_phy(o_delta_tsurf,zx_tmp_fi2d)
1696               CALL histwrite_phy(o_cdragh_x   ,cdragh_x   )
1697               CALL histwrite_phy(o_cdragh_w   ,cdragh_w   )
1698               CALL histwrite_phy(o_cdragm_x   ,cdragm_x   )
1699               CALL histwrite_phy(o_cdragm_w   ,cdragm_w   )
1700               CALL histwrite_phy(o_kh         ,kh         )
1701               CALL histwrite_phy(o_kh_x       ,kh_x       )
1702          CALL histwrite_phy(o_strig, strig)
1703          CALL histwrite_phy(o_zcong, zcong)
1704          CALL histwrite_phy(o_zlcl_th, zlcl_th)
1705               CALL histwrite_phy(o_kh_w       ,kh_w       )
1706             ENDIF   ! (iflag_pbl_split>=1)
1707             CALL histwrite_phy(o_ale, ale)
1708             CALL histwrite_phy(o_alp, alp)
1709             CALL histwrite_phy(o_cin, cin)
1710             CALL histwrite_phy(o_WAPE, wake_pe)
1711             CALL histwrite_phy(o_cv_gen, cv_gen)
1712             CALL histwrite_phy(o_wake_h, wake_h)
1713             CALL histwrite_phy(o_wake_dens, wake_dens)
1714             CALL histwrite_phy(o_wake_s, wake_s)
1715             CALL histwrite_phy(o_wake_deltat, wake_deltat)
1716             CALL histwrite_phy(o_wake_deltaq, wake_deltaq)
1717             CALL histwrite_phy(o_wake_omg, wake_omg)
1718             IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_wake(1:klon,1:klev) &
1719                  /pdtphys
1720             CALL histwrite_phy(o_dtwak, zx_tmp_fi3d)
1721             IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_wake(1:klon,1:klev)/pdtphys
1722             CALL histwrite_phy(o_dqwak, zx_tmp_fi3d)
1723             IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
1724             CALL histwrite_phy(o_dqwak2d, zx_tmp_fi2d)
1725          ENDIF ! iflag_wake>=1
1726          CALL histwrite_phy(o_ftd, ftd)
1727          CALL histwrite_phy(o_fqd, fqd)
1728       ENDIF !(iflag_con.EQ.3)
1729       IF (iflag_con.EQ.3.OR.iflag_con.EQ.30) THEN
1730          ! sortie RomP convection descente insaturee iflag_con=30
1731          ! etendue a iflag_con=3 (jyg)
1732          CALL histwrite_phy(o_Vprecip, Vprecip)
1733          CALL histwrite_phy(o_qtaa, qtaa)
1734          CALL histwrite_phy(o_clwaa, clw)
1735          CALL histwrite_phy(o_wdtrainA, wdtrainA)
1736          CALL histwrite_phy(o_wdtrainS, wdtrainS)
1737          CALL histwrite_phy(o_wdtrainM, wdtrainM)
1738       ENDIF !(iflag_con.EQ.3.or.iflag_con.EQ.30)
1739!!! nrlmd le 10/04/2012
1740       IF (iflag_trig_bl>=1) THEN
1741          CALL histwrite_phy(o_n2, n2)
1742          CALL histwrite_phy(o_s2, s2)
1743          CALL histwrite_phy(o_proba_notrig, proba_notrig)
1744          CALL histwrite_phy(o_random_notrig, random_notrig)
1745          CALL histwrite_phy(o_ale_bl_stat, ale_bl_stat)
1746          CALL histwrite_phy(o_ale_bl_trig, ale_bl_trig)
1747       ENDIF  !(iflag_trig_bl>=1)
1748       IF (iflag_clos_bl>=1) THEN
1749          CALL histwrite_phy(o_alp_bl_det, alp_bl_det)
1750          CALL histwrite_phy(o_alp_bl_fluct_m, alp_bl_fluct_m)
1751          CALL histwrite_phy(o_alp_bl_fluct_tke,  &
1752               alp_bl_fluct_tke)
1753          CALL histwrite_phy(o_alp_bl_conv, alp_bl_conv)
1754          CALL histwrite_phy(o_alp_bl_stat, alp_bl_stat)
1755       ENDIF  !(iflag_clos_bl>=1)
1756!!! fin nrlmd le 10/04/2012
1757       ! Output of slab ocean variables
1758       IF (type_ocean=='slab ') THEN
1759          CALL histwrite_phy(o_slab_bils, slab_wfbils)
1760          IF (nslay.EQ.1) THEN
1761              IF (vars_defined) zx_tmp_fi2d(:)=tslab(:,1)
1762              CALL histwrite_phy(o_tslab, zx_tmp_fi2d)
1763              IF (vars_defined) zx_tmp_fi2d(:)=dt_qflux(:,1)
1764              CALL histwrite_phy(o_slab_qflux, zx_tmp_fi2d)
1765          ELSE
1766              CALL histwrite_phy(o_tslab, tslab(:,1:nslay))
1767              CALL histwrite_phy(o_slab_qflux, dt_qflux(:,1:nslay))
1768          ENDIF
1769          IF (version_ocean=='sicINT') THEN
1770              CALL histwrite_phy(o_slab_bilg, slab_bilg)
1771              CALL histwrite_phy(o_slab_tice, tice)
1772              CALL histwrite_phy(o_slab_sic, seaice)
1773          ENDIF
1774          IF (slab_gm) THEN
1775             CALL histwrite_phy(o_slab_gm, dt_gm(:,1:nslay))
1776          ENDIF
1777          IF (slab_hdiff) THEN
1778            IF (nslay.EQ.1) THEN
1779                IF (vars_defined) zx_tmp_fi2d(:)=dt_hdiff(:,1)
1780                CALL histwrite_phy(o_slab_hdiff, zx_tmp_fi2d)
1781            ELSE
1782                CALL histwrite_phy(o_slab_hdiff, dt_hdiff(:,1:nslay))
1783            ENDIF
1784          ENDIF
1785          !IF (slab_ekman.GT.0) THEN
1786          !  IF (nslay.EQ.1) THEN
1787          !      IF (vars_defined) zx_tmp_fi2d(:)=dt_ekman(:,1)
1788          !      CALL histwrite_phy(o_slab_ekman, zx_tmp_fi2d)
1789          !  ELSE
1790          !      CALL histwrite_phy(o_slab_ekman, dt_ekman(:,1:nslay))
1791          !  ENDIF
1792          !ENDIF
1793       ENDIF !type_ocean == force/slab
1794       CALL histwrite_phy(o_weakinv, weak_inversion)
1795       CALL histwrite_phy(o_dthmin, dthmin)
1796       CALL histwrite_phy(o_cldtau, cldtau)
1797       CALL histwrite_phy(o_cldemi, cldemi)
1798       CALL histwrite_phy(o_pr_con_l, pmflxr(:,1:klev))
1799       CALL histwrite_phy(o_pr_con_i, pmflxs(:,1:klev))
1800       CALL histwrite_phy(o_pr_lsc_l, prfl(:,1:klev))
1801       CALL histwrite_phy(o_pr_lsc_i, psfl(:,1:klev))
1802       CALL histwrite_phy(o_re, re)
1803       CALL histwrite_phy(o_fl, fl)
1804
1805       IF (ok_bs) THEN
1806         CALL histwrite_phy(o_pr_bs, bsfl(:,1:klev))
1807       ENDIF
1808
1809       IF (vars_defined) THEN
1810          DO i=1, klon
1811             IF (zt2m(i).LE.273.15) then
1812                zx_tmp_fi2d(i)=MAX(0.,rh2m(i)*100.)
1813             ELSE
1814                zx_tmp_fi2d(i)=MAX(0.,MIN(100.,rh2m(i)*100.))
1815             ENDIF
1816          ENDDO
1817       ENDIF
1818       CALL histwrite_phy(o_rh2m, zx_tmp_fi2d)
1819
1820!       IF (vars_defined) THEN
1821!          DO i=1, klon
1822!             zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
1823!          ENDDO
1824!       ENDIF
1825!       CALL histwrite_phy(o_rh2m_min, zx_tmp_fi2d)
1826
1827!       IF (vars_defined) THEN
1828!          DO i=1, klon
1829!             zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
1830!          ENDDO
1831!       ENDIF
1832!       CALL histwrite_phy(o_rh2m_max, zx_tmp_fi2d)
1833
1834       CALL histwrite_phy(o_qsat2m, qsat2m)
1835       CALL histwrite_phy(o_tpot, tpot)
1836       CALL histwrite_phy(o_tpote, tpote)
1837       IF (vars_defined) zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, is_ter)
1838       CALL histwrite_phy(o_SWnetOR,  zx_tmp_fi2d)
1839       CALL histwrite_phy(o_LWdownOR, sollwdown)
1840       CALL histwrite_phy(o_snowl, snow_lsc)
1841       CALL histwrite_phy(o_solldown, sollwdown)
1842       CALL histwrite_phy(o_dtsvdfo, d_ts(:,is_oce))
1843       CALL histwrite_phy(o_dtsvdft, d_ts(:,is_ter))
1844       CALL histwrite_phy(o_dtsvdfg,  d_ts(:,is_lic))
1845       CALL histwrite_phy(o_dtsvdfi, d_ts(:,is_sic))
1846       CALL histwrite_phy(o_z0m, z0m(:,nbsrf+1))
1847       CALL histwrite_phy(o_z0h, z0h(:,nbsrf+1))
1848
1849       ! od550 per species
1850!--OLIVIER
1851!This is warranted by treating INCA aerosols as offline aerosols
1852!!#ifndef CPP_ECRAD
1853       IF (flag_aerosol.GT.0) THEN
1854          IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN
1855
1856             CALL histwrite_phy(o_od443aer, od443aer)
1857             CALL histwrite_phy(o_od550aer, od550aer)
1858             CALL histwrite_phy(o_od865aer, od865aer)
1859             CALL histwrite_phy(o_abs550aer, abs550aer)
1860             CALL histwrite_phy(o_od550lt1aer, od550lt1aer)
1861             CALL histwrite_phy(o_sconcso4, sconcso4)
1862             CALL histwrite_phy(o_sconcno3, sconcno3)
1863             CALL histwrite_phy(o_sconcoa, sconcoa)
1864             CALL histwrite_phy(o_sconcbc, sconcbc)
1865             CALL histwrite_phy(o_sconcss, sconcss)
1866             CALL histwrite_phy(o_sconcdust, sconcdust)
1867             CALL histwrite_phy(o_concso4, concso4)
1868             CALL histwrite_phy(o_concno3, concno3)
1869             CALL histwrite_phy(o_concoa, concoa)
1870             CALL histwrite_phy(o_concbc, concbc)
1871             CALL histwrite_phy(o_concss, concss)
1872             CALL histwrite_phy(o_concdust, concdust)
1873             CALL histwrite_phy(o_loadso4, loadso4)
1874             CALL histwrite_phy(o_loadoa, loadoa)
1875             CALL histwrite_phy(o_loadbc, loadbc)
1876             CALL histwrite_phy(o_loadss, loadss)
1877             CALL histwrite_phy(o_loaddust, loaddust)
1878             CALL histwrite_phy(o_loadno3, loadno3)
1879             CALL histwrite_phy(o_dryod550aer, dryod550aer)
1880             DO naero = 1, naero_tot-1
1881                CALL histwrite_phy(o_drytausumaero(naero),drytausum_aero(:,naero))
1882             ENDDO
1883          ENDIF
1884       ENDIF
1885       !--STRAT AER
1886       IF (flag_aerosol.GT.0.OR.flag_aerosol_strat.GT.0) THEN
1887          DO naero = 1, naero_tot
1888             CALL histwrite_phy(o_tausumaero(naero),tausum_aero(:,2,naero))
1889          ENDDO
1890       ENDIF
1891       IF (flag_aerosol_strat.GT.0) THEN
1892          CALL histwrite_phy(o_tausumaero_lw,tausum_aero(:,6,id_STRAT_phy))
1893       ENDIF
1894
1895       CALL histwrite_phy(o_p_tropopause, p_tropopause)
1896       CALL histwrite_phy(o_t_tropopause, t_tropopause)
1897       CALL histwrite_phy(o_z_tropopause, z_tropopause)
1898
1899! ThL -- In the following, we assume read_climoz == 1
1900       IF (vars_defined) THEN
1901         zx_tmp_fi2d = 0.0    ! Computation for strato, added ThL
1902         DO k=1, klev
1903            zx_tmp_fi2d(:) = zx_tmp_fi2d(:) + wo(:,k,1) * stratomask(:,k) * 1.e3
1904         ENDDO
1905       ENDIF
1906       CALL histwrite_phy(o_col_O3_strato, zx_tmp_fi2d) ! Added ThL
1907
1908       IF (vars_defined) THEN
1909         zx_tmp_fi2d = 0.0    ! Computation for tropo, added ThL
1910         DO k=1, klev
1911            zx_tmp_fi2d(:) = zx_tmp_fi2d(:) + wo(:,k,1) * (1.0-stratomask(:,k)) * 1.e3
1912         ENDDO
1913       ENDIF
1914       CALL histwrite_phy(o_col_O3_tropo, zx_tmp_fi2d)   ! Added ThL
1915! end add ThL
1916
1917IF (CPPKEY_STRATAER) THEN
1918       IF (type_trac=='coag') THEN
1919          CALL histwrite_phy(o_R2SO4, R2SO4)
1920          CALL histwrite_phy(o_OCS_lifetime, OCS_lifetime)
1921          CALL histwrite_phy(o_SO2_lifetime, SO2_lifetime)
1922          CALL histwrite_phy(o_budg_3D_backgr_ocs,   budg_3D_backgr_ocs)
1923          CALL histwrite_phy(o_budg_3D_backgr_so2,   budg_3D_backgr_so2)
1924          CALL histwrite_phy(o_budg_3D_ocs_to_so2,   budg_3D_ocs_to_so2)
1925          CALL histwrite_phy(o_budg_3D_so2_to_h2so4, budg_3D_so2_to_h2so4)
1926          CALL histwrite_phy(o_budg_3D_nucl,         budg_3D_nucl)
1927          CALL histwrite_phy(o_budg_3D_cond_evap,    budg_3D_cond_evap)
1928          CALL histwrite_phy(o_budg_dep_dry_ocs,     budg_dep_dry_ocs)
1929          CALL histwrite_phy(o_budg_dep_wet_ocs,     budg_dep_wet_ocs)
1930          CALL histwrite_phy(o_budg_dep_dry_so2,     budg_dep_dry_so2)
1931          CALL histwrite_phy(o_budg_dep_wet_so2,     budg_dep_wet_so2)
1932          CALL histwrite_phy(o_budg_dep_dry_h2so4,   budg_dep_dry_h2so4)
1933          CALL histwrite_phy(o_budg_dep_wet_h2so4,   budg_dep_wet_h2so4)
1934          CALL histwrite_phy(o_budg_dep_dry_part,    budg_dep_dry_part)
1935          CALL histwrite_phy(o_budg_dep_wet_part,    budg_dep_wet_part)
1936          CALL histwrite_phy(o_budg_emi_ocs,         budg_emi_ocs)
1937          CALL histwrite_phy(o_budg_emi_so2,         budg_emi_so2)
1938          CALL histwrite_phy(o_budg_emi_h2so4,       budg_emi_h2so4)
1939          CALL histwrite_phy(o_budg_emi_part,        budg_emi_part)
1940          CALL histwrite_phy(o_budg_ocs_to_so2,      budg_ocs_to_so2)
1941          CALL histwrite_phy(o_budg_so2_to_h2so4,    budg_so2_to_h2so4)
1942          CALL histwrite_phy(o_budg_h2so4_to_part,   budg_h2so4_to_part)
1943          CALL histwrite_phy(o_budg_sed_part,        budg_sed_part)
1944          CALL histwrite_phy(o_surf_PM25_sulf, surf_PM25_sulf)
1945          CALL histwrite_phy(o_vsed_aer, vsed_aer)
1946          CALL histwrite_phy(o_f_r_wet, f_r_wet)
1947          CALL histwrite_phy(o_SO2_chlm, SO2_chlm)
1948          CALL histwrite_phy(o_ext_strat_443, tau_strat_443)
1949          CALL histwrite_phy(o_ext_strat_550, tau_strat_550)
1950          CALL histwrite_phy(o_ext_strat_670, tau_strat_670)
1951          CALL histwrite_phy(o_ext_strat_765, tau_strat_765)
1952          CALL histwrite_phy(o_ext_strat_1020, tau_strat_1020)
1953          CALL histwrite_phy(o_ext_strat_10um, tau_strat_10um)
1954          CALL histwrite_phy(o_tau_strat_443, tausum_strat(:,1))
1955          CALL histwrite_phy(o_tau_strat_550, tausum_strat(:,2))
1956          CALL histwrite_phy(o_tau_strat_670, tausum_strat(:,3))
1957          CALL histwrite_phy(o_tau_strat_765, tausum_strat(:,4))
1958          CALL histwrite_phy(o_tau_strat_1020, tausum_strat(:,5))
1959          CALL histwrite_phy(o_tau_strat_10um, tausum_strat(:,6))
1960          CALL histwrite_phy(o_SAD_sulfate, SAD_sulfate)
1961          CALL histwrite_phy(o_reff_sulfate, reff_sulfate)
1962          CALL histwrite_phy(o_sulfmmr, sulfmmr)
1963          ! All BINs fields
1964          DO itr = 1, nbtr_bin
1965             CALL histwrite_phy(o_nd_mode(itr), nd_mode(:,:,itr))
1966             CALL histwrite_phy(o_sulfmmr_mode(itr), sulfmmr_mode(:,:,itr))
1967          ENDDO !--itr
1968       ENDIF
1969END IF
1970       !NL
1971       IF (ok_volcan .AND. ok_ade) THEN
1972          DO k=1, klev
1973             IF (vars_defined) zx_tmp_fi3d(:,k)=heat_volc(:,k)*swradcorr(:)
1974          ENDDO
1975          CALL histwrite_phy(o_heat_volc, zx_tmp_fi3d)
1976          DO k=1, klev
1977             IF (vars_defined) zx_tmp_fi3d(:,k)=cool_volc(:,k)
1978          ENDDO
1979          CALL histwrite_phy(o_cool_volc, zx_tmp_fi3d)
1980       ENDIF
1981       IF (ok_ade) THEN
1982          IF (vars_defined) zx_tmp_fi2d(:)=topswad_aero*swradcorr
1983          CALL histwrite_phy(o_topswad, zx_tmp_fi2d)
1984         
1985          IF (vars_defined) zx_tmp_fi2d(:)=topswad0_aero*swradcorr
1986          CALL histwrite_phy(o_topswad0, zx_tmp_fi2d)
1987                   
1988          IF (vars_defined) zx_tmp_fi2d(:)=solswad_aero*swradcorr
1989          CALL histwrite_phy(o_solswad, zx_tmp_fi2d)
1990                   
1991          IF (vars_defined) zx_tmp_fi2d(:)=solswad0_aero*swradcorr
1992          CALL histwrite_phy(o_solswad0, zx_tmp_fi2d)
1993         
1994          IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN
1995
1996             CALL histwrite_phy(o_toplwad, toplwad_aero)
1997             CALL histwrite_phy(o_toplwad0, toplwad0_aero)
1998             CALL histwrite_phy(o_sollwad, sollwad_aero)
1999             CALL histwrite_phy(o_sollwad0, sollwad0_aero)
2000          ENDIF
2001          !====MS forcing diagnostics
2002          !ym warning : topsw_aero, solsw_aero, topsw0_aero, solsw0_aero are not defined by model
2003          !ym => init to 0 in radlwsw_m.F90 ztopsw_aero, zsolsw_aero, ztopsw0_aero, zsolsw0_aero
2004
2005          IF (vars_defined) zx_tmp_fi2d(:)=topsw_aero(:,1)*swradcorr(:)
2006          CALL histwrite_phy(o_swtoaas_nat,zx_tmp_fi2d)
2007          IF (vars_defined) zx_tmp_fi2d(:)=solsw_aero(:,1)*swradcorr(:)
2008          CALL histwrite_phy(o_swsrfas_nat,zx_tmp_fi2d)
2009          IF (vars_defined) zx_tmp_fi2d(:)=topsw0_aero(:,1)*swradcorr(:)
2010          CALL histwrite_phy(o_swtoacs_nat,zx_tmp_fi2d)
2011          IF (vars_defined) zx_tmp_fi2d(:)=solsw0_aero(:,1)*swradcorr(:)
2012          CALL histwrite_phy(o_swsrfcs_nat,zx_tmp_fi2d)
2013          !ant
2014          IF (vars_defined) zx_tmp_fi2d(:)=topsw_aero(:,2)*swradcorr(:)
2015          CALL histwrite_phy(o_swtoaas_ant,zx_tmp_fi2d)
2016          IF (vars_defined) zx_tmp_fi2d(:)=solsw_aero(:,2)*swradcorr(:)
2017          CALL histwrite_phy(o_swsrfas_ant,zx_tmp_fi2d)
2018          IF (vars_defined) zx_tmp_fi2d(:)=topsw0_aero(:,2)*swradcorr(:)
2019          CALL histwrite_phy(o_swtoacs_ant,zx_tmp_fi2d)
2020          IF (vars_defined) zx_tmp_fi2d(:)=solsw0_aero(:,2)*swradcorr(:)
2021          CALL histwrite_phy(o_swsrfcs_ant,zx_tmp_fi2d)
2022          !cf
2023          IF (.not. aerosol_couple) THEN
2024             IF (vars_defined) zx_tmp_fi2d(:)=topswcf_aero(:,1)*swradcorr(:)
2025             CALL histwrite_phy(o_swtoacf_nat,zx_tmp_fi2d)
2026             IF (vars_defined) zx_tmp_fi2d(:)=solswcf_aero(:,1)*swradcorr(:)
2027             CALL histwrite_phy(o_swsrfcf_nat,zx_tmp_fi2d)
2028             IF (vars_defined) zx_tmp_fi2d(:)=topswcf_aero(:,2)*swradcorr(:)
2029             CALL histwrite_phy(o_swtoacf_ant,zx_tmp_fi2d)
2030             IF (vars_defined) zx_tmp_fi2d(:)=solswcf_aero(:,2)*swradcorr(:)
2031             CALL histwrite_phy(o_swsrfcf_ant,zx_tmp_fi2d)
2032             IF (vars_defined) zx_tmp_fi2d(:)=topswcf_aero(:,3)*swradcorr(:)
2033             CALL histwrite_phy(o_swtoacf_zero,zx_tmp_fi2d)
2034             IF (vars_defined) zx_tmp_fi2d(:)=solswcf_aero(:,3)*swradcorr(:)
2035             CALL histwrite_phy(o_swsrfcf_zero,zx_tmp_fi2d)
2036          ENDIF
2037          !====MS forcing diagnostics
2038       ENDIF
2039       IF (ok_aie) THEN
2040          IF (vars_defined) zx_tmp_fi2d(:)= topswai_aero*swradcorr
2041          CALL histwrite_phy(o_topswai, zx_tmp_fi2d)
2042         
2043          IF (vars_defined) zx_tmp_fi2d(:)=toplwai_aero*swradcorr
2044          CALL histwrite_phy(o_toplwai, zx_tmp_fi2d)
2045         
2046          IF (vars_defined) zx_tmp_fi2d(:)=solswai_aero*swradcorr
2047          CALL histwrite_phy(o_solswai, zx_tmp_fi2d)
2048         
2049          IF (vars_defined) zx_tmp_fi2d(:)=sollwai_aero*swradcorr
2050          CALL histwrite_phy(o_sollwai, zx_tmp_fi2d)
2051       ENDIF
2052       IF (flag_aerosol.GT.0.AND.ok_cdnc) THEN
2053          CALL histwrite_phy(o_scdnc, scdnc)
2054          CALL histwrite_phy(o_cldncl, cldncl)
2055          CALL histwrite_phy(o_reffclws, reffclws)
2056          CALL histwrite_phy(o_reffclwc, reffclwc)
2057          CALL histwrite_phy(o_cldnvi, cldnvi)
2058          CALL histwrite_phy(o_lcc, lcc)
2059          CALL histwrite_phy(o_lcc3d, lcc3d)
2060          CALL histwrite_phy(o_lcc3dcon, lcc3dcon)
2061          CALL histwrite_phy(o_lcc3dstra, lcc3dstra)
2062          CALL histwrite_phy(o_icc3dcon, icc3dcon)
2063          CALL histwrite_phy(o_icc3dstra, icc3dstra)
2064          CALL histwrite_phy(o_cldicemxrat, zfice)
2065          IF (vars_defined) zx_tmp_fi3d(:,:)=1-zfice(:,:)
2066          CALL histwrite_phy(o_cldwatmxrat, zx_tmp_fi3d)
2067          CALL histwrite_phy(o_reffclwtop, reffclwtop)
2068       ENDIF
2069       ! Champs 3D:
2070       IF (ok_ade .OR. ok_aie) then
2071          IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN
2072             CALL histwrite_phy(o_ec550aer, ec550aer)
2073          ENDIF
2074       ENDIF
2075
2076       CALL histwrite_phy(o_lwcon, flwc)
2077       CALL histwrite_phy(o_iwcon, fiwc)
2078       CALL histwrite_phy(o_temp, t_seri)
2079       CALL histwrite_phy(o_theta, theta)
2080       CALL histwrite_phy(o_ovapinit, qx(:,:,ivap))
2081       CALL histwrite_phy(o_ovap, q_seri)
2082       CALL histwrite_phy(o_oliq, ql_seri)
2083       !FC
2084       CALL histwrite_phy(o_zxfluxt, zxfluxt)
2085       CALL histwrite_phy(o_zxfluxq, zx_tmp_fi3d)
2086       !FC
2087
2088       IF (vars_defined) zx_tmp_fi3d = ql_seri+qs_seri
2089       CALL histwrite_phy(o_ocond, zx_tmp_fi3d)
2090     
2091       IF (vars_defined) zx_tmp_fi3d = qs_seri
2092       CALL histwrite_phy(o_oice, zx_tmp_fi3d)
2093
2094       CALL histwrite_phy(o_geop, zphi)
2095       CALL histwrite_phy(o_vitu, u_seri)
2096       CALL histwrite_phy(o_vitv, v_seri)
2097       CALL histwrite_phy(o_vitw, omega)
2098       CALL histwrite_phy(o_pres, pplay)
2099       CALL histwrite_phy(o_paprs, paprs(:,1:klev))
2100       
2101       IF (vars_defined) zx_tmp_fi3d = zphi/RG
2102       CALL histwrite_phy(o_zfull,zx_tmp_fi3d)
2103
2104       IF (ok_bs) THEN
2105          CALL histwrite_phy(o_qbs, qbs_seri)
2106       ENDIF
2107
2108       IF (using_xios) THEN
2109!solbnd begin
2110#ifdef CPP_RRTM
2111         IF (iflag_rrtm.EQ.1) THEN
2112           IF (vars_defined) THEN
2113             DO ISW=1, NSW
2114               zx_tmp_fi3dsp(:,ISW) = swdn(:,klevp1)*swradcorr(:)*RSUN(ISW)
2115             ENDDO
2116             CALL histwrite_phy(o_solbnd, zx_tmp_fi3dsp)
2117           ENDIF
2118         ENDIF
2119#endif
2120!solbnd end
2121       ENDIF
2122!!#endif
2123
2124       IF (flag_aerosol_strat.EQ.2) THEN
2125         CALL histwrite_phy(o_stratomask, stratomask)
2126       ENDIF
2127     
2128       IF (vars_defined)  THEN
2129        zx_tmp_fi3d(:,1)= pphis(:)/RG
2130        DO k = 2, klev
2131         DO i = 1, klon
2132            zx_tmp_fi3d(i,k) = zphi(i,k-1)/RG + &
2133                          (zphi(i,k)-zphi(i,k-1))/RG * &
2134                          (paprs(i,k)-pplay(i,k-1))/(pplay(i,k)-pplay(i,k-1))
2135         ENDDO
2136        ENDDO
2137       ENDIF
2138       CALL histwrite_phy(o_zhalf, zx_tmp_fi3d)
2139       CALL histwrite_phy(o_rneb, cldfra)
2140       CALL histwrite_phy(o_rnebcon, rnebcon)
2141       CALL histwrite_phy(o_rnebls, rneb)
2142       CALL histwrite_phy(o_rneblsvol, rneblsvol)
2143       IF (vars_defined)  THEN
2144          DO k=1, klev
2145             DO i=1, klon
2146                zx_tmp_fi3d(i,k)=cldfra(i,k)*JrNt(i)
2147             ENDDO
2148          ENDDO
2149       ENDIF
2150       CALL histwrite_phy(o_rnebjn, zx_tmp_fi3d)
2151       CALL histwrite_phy(o_rhum, zx_rh)
2152       IF (iflag_ice_thermo .GT. 0) THEN
2153          IF (vars_defined) zx_tmp_fi3d = zx_rhl * 100.
2154          CALL histwrite_phy(o_rhl, zx_tmp_fi3d)
2155          IF (vars_defined) zx_tmp_fi3d = zx_rhi * 100.
2156          CALL histwrite_phy(o_rhi, zx_tmp_fi3d)
2157       ENDIF
2158     
2159       IF (ok_new_lscp) THEN
2160           CALL histwrite_phy(o_pfraclr, pfraclr)
2161           CALL histwrite_phy(o_pfracld, pfracld)
2162           IF (iflag_icefrac .GT. 0) THEN
2163           CALL histwrite_phy(o_cldfraliq, cldfraliq)
2164           CALL histwrite_phy(o_sigma2_icefracturb, sigma2_icefracturb)
2165           CALL histwrite_phy(o_mean_icefracturb, mean_icefracturb)
2166           CALL histwrite_phy(o_cldfraliqth, cldfraliqth)
2167           CALL histwrite_phy(o_sigma2_icefracturbth, sigma2_icefracturbth)
2168           CALL histwrite_phy(o_mean_icefracturbth, mean_icefracturbth)
2169           ELSE
2170           CALL histwrite_phy(o_distcltop, distcltop)
2171           CALL histwrite_phy(o_tempcltop, temp_cltop)
2172           ENDIF
2173           IF (ok_poprecip) THEN
2174           CALL histwrite_phy(o_qrainlsc, qraindiag)
2175           CALL histwrite_phy(o_qsnowlsc, qsnowdiag)
2176           CALL histwrite_phy(o_dqreva, dqreva)
2177           CALL histwrite_phy(o_dqrauto, dqrauto)
2178           CALL histwrite_phy(o_dqrcol, dqrcol)
2179           CALL histwrite_phy(o_dqrmelt, dqrmelt)
2180           CALL histwrite_phy(o_dqrfreez, dqrfreez)
2181           CALL histwrite_phy(o_dqssub, dqssub)
2182           CALL histwrite_phy(o_dqsauto, dqsauto)
2183           CALL histwrite_phy(o_dqsagg, dqsagg)
2184           CALL histwrite_phy(o_dqsmelt, dqsmelt)
2185           CALL histwrite_phy(o_dqsfreez, dqsfreez)
2186           CALL histwrite_phy(o_dqsrim, dqsrim)
2187           ELSE
2188            CALL histwrite_phy(o_dqreva, dqreva)
2189            CALL histwrite_phy(o_dqssub, dqssub)
2190            CALL histwrite_phy(o_dqrauto, dqrauto)
2191            CALL histwrite_phy(o_dqsauto, dqsauto)
2192           ENDIF
2193           CALL histwrite_phy(o_qsatl, qsatliq)
2194           CALL histwrite_phy(o_qsati, qsatice)
2195       ENDIF
2196
2197!-- LSCP - condensation and supersaturation variables
2198       IF (ok_ice_supersat) THEN
2199         CALL histwrite_phy(o_cfseri, cf_seri)
2200         CALL histwrite_phy(o_dcfdyn, d_cf_dyn)
2201         CALL histwrite_phy(o_qvcseri, qvc_seri)
2202         CALL histwrite_phy(o_dqvcdyn, d_qvc_dyn)
2203         CALL histwrite_phy(o_qsub, qsub)
2204         CALL histwrite_phy(o_qissr, qissr)
2205         CALL histwrite_phy(o_qcld, qcld)
2206         CALL histwrite_phy(o_subfra, subfra)
2207         CALL histwrite_phy(o_issrfra, issrfra)
2208         CALL histwrite_phy(o_gammacond, gamma_cond)
2209         CALL histwrite_phy(o_dcfsub, dcf_sub)
2210         CALL histwrite_phy(o_dcfcon, dcf_con)
2211         CALL histwrite_phy(o_dcfmix, dcf_mix)
2212         CALL histwrite_phy(o_dqiadj, dqi_adj)
2213         CALL histwrite_phy(o_dqisub, dqi_sub)
2214         CALL histwrite_phy(o_dqicon, dqi_con)
2215         CALL histwrite_phy(o_dqimix, dqi_mix)
2216         CALL histwrite_phy(o_dqvcadj, dqvc_adj)
2217         CALL histwrite_phy(o_dqvcsub, dqvc_sub)
2218         CALL histwrite_phy(o_dqvccon, dqvc_con)
2219         CALL histwrite_phy(o_dqvcmix, dqvc_mix)
2220         CALL histwrite_phy(o_issrfra100to150, issrfra100to150)
2221         CALL histwrite_phy(o_issrfra150to200, issrfra150to200)
2222         CALL histwrite_phy(o_issrfra200to250, issrfra200to250)
2223         CALL histwrite_phy(o_issrfra250to300, issrfra250to300)
2224         CALL histwrite_phy(o_issrfra300to400, issrfra300to400)
2225         CALL histwrite_phy(o_issrfra400to500, issrfra400to500)
2226         IF ( ok_ice_sedim ) THEN
2227          CALL histwrite_phy(o_dqised, dqised)
2228          CALL histwrite_phy(o_dcfsed, dcfsed)
2229          CALL histwrite_phy(o_dqvcsed, dqvcsed)
2230         ENDIF
2231       ENDIF
2232!-- LSCP - aviation variables
2233       IF (ok_plane_contrail) THEN
2234         CALL histwrite_phy(o_cflseri, cfl_seri)
2235         CALL histwrite_phy(o_dcfldyn, d_cfl_dyn)
2236         CALL histwrite_phy(o_cfcseri, cfc_seri)
2237         CALL histwrite_phy(o_dcfcdyn, d_cfc_dyn)
2238         CALL histwrite_phy(o_qtlseri, qtl_seri)
2239         CALL histwrite_phy(o_dqtldyn, d_qtl_dyn)
2240         CALL histwrite_phy(o_qtcseri, qtc_seri)
2241         CALL histwrite_phy(o_dqtcdyn, d_qtc_dyn)
2242         CALL histwrite_phy(o_flight_dist, flight_dist)
2243         CALL histwrite_phy(o_Tcritcont, Tcritcont)
2244         CALL histwrite_phy(o_qcritcont, qcritcont)
2245         CALL histwrite_phy(o_potcontfraP, potcontfraP)
2246         CALL histwrite_phy(o_potcontfraNP, potcontfraNP)
2247         CALL histwrite_phy(o_qice_lincont, qice_lincont)
2248         CALL histwrite_phy(o_qice_circont, qice_circont)
2249         CALL histwrite_phy(o_dcflcir, dcfl_cir)
2250         CALL histwrite_phy(o_dqtlcir, dqtl_cir)
2251         CALL histwrite_phy(o_dcflini, dcfl_ini)
2252         CALL histwrite_phy(o_dqilini, dqil_ini)
2253         CALL histwrite_phy(o_dqtlini, dqtl_ini)
2254         CALL histwrite_phy(o_dcflsub, dcfl_sub)
2255         CALL histwrite_phy(o_dqilsub, dqil_sub)
2256         CALL histwrite_phy(o_dqtlsub, dqtl_sub)
2257         CALL histwrite_phy(o_dcflmix, dcfl_mix)
2258         CALL histwrite_phy(o_dqilmix, dqil_mix)
2259         CALL histwrite_phy(o_dqtlmix, dqtl_mix)
2260         CALL histwrite_phy(o_dcflsed, dcfl_sed)
2261         CALL histwrite_phy(o_dqilsed, dqil_sed)
2262         CALL histwrite_phy(o_dqtlsed, dqtl_sed)
2263         CALL histwrite_phy(o_dcfcsub, dcfc_sub)
2264         CALL histwrite_phy(o_dqicsub, dqic_sub)
2265         CALL histwrite_phy(o_dqtcsub, dqtc_sub)
2266         CALL histwrite_phy(o_dcfcmix, dcfc_mix)
2267         CALL histwrite_phy(o_dqicmix, dqic_mix)
2268         CALL histwrite_phy(o_dqtcmix, dqtc_mix)
2269         CALL histwrite_phy(o_dcfcsed, dcfc_sed)
2270         CALL histwrite_phy(o_dqicsed, dqic_sed)
2271         CALL histwrite_phy(o_dqtcsed, dqtc_sed)
2272         CALL histwrite_phy(o_cldfra_nocont, cldfra_nocont)
2273         CALL histwrite_phy(o_cldtau_nocont, cldtau_nocont)
2274         CALL histwrite_phy(o_cldemi_nocont, cldemi_nocont)
2275         CALL histwrite_phy(o_cldh_nocont, cldh_nocont)
2276         CALL histwrite_phy(o_contcov, contcov)
2277         CALL histwrite_phy(o_conttau, conttau)
2278         CALL histwrite_phy(o_contemi, contemi)
2279         CALL histwrite_phy(o_iwp_nocont, fiwp_nocont)
2280         CALL histwrite_phy(o_iwc_nocont, fiwc_nocont)
2281         CALL histwrite_phy(o_ref_ice_nocont, ref_ice_nocont)
2282         IF (ok_rad_contrail) THEN
2283           IF (vars_defined) zx_tmp_fi2d = topsw_nocont * swradcorr
2284           CALL histwrite_phy(o_tops_nocont, zx_tmp_fi2d)
2285           CALL histwrite_phy(o_topl_nocont, toplw_nocont)
2286           IF (vars_defined) zx_tmp_fi2d = topsw_nocont * swradcorr - toplw_nocont
2287           CALL histwrite_phy(o_nettop_nocont, zx_tmp_fi2d)
2288           IF (vars_defined) zx_tmp_fi2d = solsw_nocont * swradcorr
2289           CALL histwrite_phy(o_sols_nocont, zx_tmp_fi2d)
2290           CALL histwrite_phy(o_soll_nocont, sollw_nocont)
2291         ENDIF
2292       ENDIF
2293       IF (ok_plane_h2o) THEN
2294         CALL histwrite_phy(o_flight_h2o, flight_h2o)
2295         CALL histwrite_phy(o_dqavi, d_q_avi)
2296       ENDIF
2297       
2298       IF (vars_defined) zx_tmp_fi3d = wo(:, :, 1) * dobson_u * 1e3 / zmasse / rmo3 * rmd
2299       CALL histwrite_phy(o_ozone, zx_tmp_fi3d)
2300
2301       IF (read_climoz == 2) THEN
2302         IF (vars_defined) zx_tmp_fi3d = wo(:, :, 2) * dobson_u * 1e3 / zmasse / rmo3 * rmd
2303         CALL histwrite_phy(o_ozone_light, zx_tmp_fi3d)
2304       ENDIF
2305
2306       CALL histwrite_phy(o_duphy, d_u)
2307
2308       CALL histwrite_phy(o_dtphy, d_t)
2309
2310       CALL histwrite_phy(o_dqphy,  d_qx(:,:,ivap))
2311       IF (vars_defined) CALL water_int(klon,klev,d_qx(:,:,ivap),zmasse,zx_tmp_fi2d)
2312       CALL histwrite_phy(o_dqphy2d,  zx_tmp_fi2d)
2313
2314       CALL histwrite_phy(o_dqlphy,  d_qx(:,:,iliq))
2315       IF (vars_defined) CALL water_int(klon,klev,d_qx(:,:,iliq),zmasse,zx_tmp_fi2d)
2316       CALL histwrite_phy(o_dqlphy2d,  zx_tmp_fi2d)
2317
2318       IF (nqo .GE. 3) THEN
2319       CALL histwrite_phy(o_dqsphy,  d_qx(:,:,isol))
2320       IF (vars_defined) CALL water_int(klon,klev,d_qx(:,:,isol),zmasse,zx_tmp_fi2d)
2321       CALL histwrite_phy(o_dqsphy2d,  zx_tmp_fi2d)
2322       ELSE
2323       zx_tmp_fi3d=0.0
2324       CALL histwrite_phy(o_dqsphy,  zx_tmp_fi3d)
2325       zx_tmp_fi2d=0.0
2326       CALL histwrite_phy(o_dqsphy2d,  zx_tmp_fi2d)
2327       ENDIF
2328
2329
2330       IF (ok_bs) THEN
2331       CALL histwrite_phy(o_dqbsphy,  d_qx(:,:,ibs))
2332       IF (vars_defined) CALL water_int(klon,klev,d_qx(:,:,ibs),zmasse,zx_tmp_fi2d)
2333       CALL histwrite_phy(o_dqbsphy2d,  zx_tmp_fi2d)
2334       ELSE
2335       zx_tmp_fi3d=0.0
2336       CALL histwrite_phy(o_dqbsphy,  zx_tmp_fi3d)
2337       zx_tmp_fi2d=0.0
2338       CALL histwrite_phy(o_dqbsphy2d,  zx_tmp_fi2d)
2339       ENDIF
2340
2341       DO nsrf=1, nbsrf
2342          IF (vars_defined) zx_tmp_fi2d(1 : klon) = falb1( 1 : klon, nsrf)
2343          CALL histwrite_phy(o_albe_srf(nsrf), zx_tmp_fi2d)
2344          IF (vars_defined) zx_tmp_fi2d(1 : klon) = z0m( 1 : klon, nsrf)
2345          CALL histwrite_phy(o_z0m_srf(nsrf), zx_tmp_fi2d)
2346          IF (vars_defined) zx_tmp_fi2d(1 : klon) = z0h( 1 : klon, nsrf)
2347          CALL histwrite_phy(o_z0h_srf(nsrf), zx_tmp_fi2d)
2348          IF (vars_defined) zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf)
2349          CALL histwrite_phy(o_ages_srf(nsrf), zx_tmp_fi2d)
2350          IF (vars_defined) zx_tmp_fi2d(1 : klon) = snow( 1 : klon, nsrf)
2351          CALL histwrite_phy(o_snow_srf(nsrf), zx_tmp_fi2d)
2352       ENDDO !nsrf=1, nbsrf
2353       CALL histwrite_phy(o_alb1, albsol1)
2354       CALL histwrite_phy(o_alb2, albsol2)
2355       !FH Sorties pour la couche limite
2356       IF (iflag_pbl>1) THEN
2357          zx_tmp_fi3d=0.
2358          IF (vars_defined) THEN
2359             DO nsrf=1,nbsrf
2360                DO k=1,klev
2361                   zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k) &
2362                        +pctsrf(:,nsrf)*pbl_tke(:,k,nsrf)
2363                ENDDO
2364             ENDDO
2365          ENDIF
2366          CALL histwrite_phy(o_tke, zx_tmp_fi3d)
2367          CALL histwrite_phy(o_tke_max, zx_tmp_fi3d) 
2368       ENDIF
2369
2370       CALL histwrite_phy(o_kz, coefh(:,:,is_ave))
2371
2372       CALL histwrite_phy(o_kz_max, coefh(:,:,is_ave))
2373
2374       CALL histwrite_phy(o_clwcon, clwcon0)
2375
2376       CALL histwrite_phy(o_dtdyn, d_t_dyn)
2377
2378       CALL histwrite_phy(o_dqdyn, d_q_dyn)
2379
2380       CALL histwrite_phy(o_dqdyn2d,d_q_dyn2d)
2381
2382       CALL histwrite_phy(o_dqldyn, d_ql_dyn)
2383
2384       CALL histwrite_phy(o_dqldyn2d, d_ql_dyn2d)
2385
2386       CALL histwrite_phy(o_dqsdyn, d_qs_dyn)
2387
2388       CALL histwrite_phy(o_dqsdyn2d, d_qs_dyn2d)
2389
2390       IF (ok_bs) THEN
2391         CALL histwrite_phy(o_dqbsdyn, d_qbs_dyn)
2392         CALL histwrite_phy(o_dqbsdyn2d, d_qbs_dyn2d)
2393       ENDIF
2394
2395       CALL histwrite_phy(o_dudyn, d_u_dyn)
2396       CALL histwrite_phy(o_dvdyn, d_v_dyn)
2397
2398       IF (vars_defined) THEN
2399          zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys
2400       ENDIF
2401       CALL histwrite_phy(o_dtcon, zx_tmp_fi3d)
2402       IF (iflag_thermals.EQ.0) THEN
2403          IF (vars_defined) THEN
2404             zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + &
2405                  d_t_ajsb(1:klon,1:klev)/pdtphys
2406          ENDIF
2407          CALL histwrite_phy(o_tntc, zx_tmp_fi3d)
2408       ELSE IF(iflag_thermals.GE.1.AND.iflag_wake.EQ.1) THEN
2409          IF (vars_defined) THEN
2410             zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + &
2411                  d_t_ajs(1:klon,1:klev)/pdtphys + &
2412                  d_t_wake(1:klon,1:klev)/pdtphys
2413          ENDIF
2414          CALL histwrite_phy(o_tntc, zx_tmp_fi3d)
2415       ENDIF
2416       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys
2417       CALL histwrite_phy(o_ducon, zx_tmp_fi3d)
2418       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_con(1:klon,1:klev)/pdtphys
2419       CALL histwrite_phy(o_dvcon, zx_tmp_fi3d)
2420       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
2421       CALL histwrite_phy(o_dqcon, zx_tmp_fi3d)
2422       IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
2423       CALL histwrite_phy(o_dqcon2d, zx_tmp_fi2d)
2424
2425       IF (iflag_thermals.EQ.0) THEN
2426          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
2427          CALL histwrite_phy(o_tnhusc, zx_tmp_fi3d)
2428       ELSE IF (iflag_thermals.GE.1.AND.iflag_wake.EQ.1) THEN
2429          IF (vars_defined) THEN
2430             zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys + &
2431                  d_q_ajs(1:klon,1:klev)/pdtphys + &
2432                  d_q_wake(1:klon,1:klev)/pdtphys
2433          ENDIF
2434          CALL histwrite_phy(o_tnhusc, zx_tmp_fi3d)
2435       ENDIF
2436
2437       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lsc(1:klon,1:klev)/pdtphys
2438       CALL histwrite_phy(o_dtlsc, zx_tmp_fi3d)
2439       IF (vars_defined) zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+d_t_eva(1:klon,1:klev))/pdtphys
2440       CALL histwrite_phy(o_dtlschr, zx_tmp_fi3d)
2441       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys
2442       CALL histwrite_phy(o_dqlsc, zx_tmp_fi3d)
2443       IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
2444       CALL histwrite_phy(o_dqlsc2d, zx_tmp_fi2d)
2445       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=beta_prec(1:klon,1:klev)
2446       CALL histwrite_phy(o_beta_prec, zx_tmp_fi3d)
2447!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2448       ! Sorties specifiques a la separation thermiques/non thermiques
2449       IF (iflag_thermals>=1) THEN
2450          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscth(1:klon,1:klev)/pdtphys
2451          CALL histwrite_phy(o_dtlscth, zx_tmp_fi3d)
2452          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscst(1:klon,1:klev)/pdtphys
2453          CALL histwrite_phy(o_dtlscst, zx_tmp_fi3d)
2454          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscth(1:klon,1:klev)/pdtphys
2455          CALL histwrite_phy(o_dqlscth, zx_tmp_fi3d)
2456          IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
2457          CALL histwrite_phy(o_dqlscth2d, zx_tmp_fi2d)
2458          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscst(1:klon,1:klev)/pdtphys
2459          CALL histwrite_phy(o_dqlscst, zx_tmp_fi3d)
2460          IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
2461          CALL histwrite_phy(o_dqlscst2d, zx_tmp_fi2d)
2462          CALL histwrite_phy(o_plulth, plul_th)
2463          CALL histwrite_phy(o_plulst, plul_st)
2464          IF (vars_defined) THEN
2465             DO i=1,klon
2466                zx_tmp_fi2d(1:klon)=lmax_th(:)
2467             ENDDO
2468          ENDIF
2469          CALL histwrite_phy(o_lmaxth, zx_tmp_fi2d)
2470          IF (vars_defined) THEN
2471             DO k=1,klev
2472                DO i=1,klon
2473                   IF (ptconvth(i,k)) THEN
2474                      zx_tmp_fi3d(i,k)=1.
2475                   ELSE
2476                      zx_tmp_fi3d(i,k)=0.
2477                   ENDIF
2478                ENDDO
2479             ENDDO
2480          ENDIF
2481          CALL histwrite_phy(o_ptconvth, zx_tmp_fi3d)
2482       ENDIF ! iflag_thermals>=1
2483!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2484       zpt_conv = 0.
2485       WHERE (ptconv) zpt_conv = 1.
2486       CALL histwrite_phy(o_ptconv, zpt_conv)
2487!!       IF (vars_defined)         zx_tmp_fi2d=float(itau_con)/float(itap)
2488!!       CALL histwrite_phy(o_ftime_con, zx_tmp_fi2d)
2489       IF (vars_defined) THEN
2490          zpt_conv2d(:) = 0.
2491          DO k=1,klev
2492            WHERE (ptconv(:,k)) zpt_conv2d(:) = 1.
2493          ENDDO
2494       ENDIF
2495       CALL histwrite_phy(o_ftime_deepcv, zpt_conv2d)
2496       IF (vars_defined) THEN
2497          zx_tmp_fi2d(:) = 0.
2498          DO k=1,klev
2499            WHERE (ptconvth(:,k)) zx_tmp_fi2d(:) = 1.
2500          ENDDO
2501       ENDIF
2502       CALL histwrite_phy(o_ftime_th, zx_tmp_fi2d)
2503       IF (vars_defined) THEN
2504           zx_tmp_fi2d(:) = max(zx_tmp_fi2d(:),zpt_conv2d(:))
2505       ENDIF
2506       CALL histwrite_phy(o_ftime_con, zx_tmp_fi2d)
2507!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2508       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys
2509       CALL histwrite_phy(o_dtvdf, zx_tmp_fi3d)
2510       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_diss(1:klon,1:klev)/pdtphys
2511       CALL histwrite_phy(o_dtdis, zx_tmp_fi3d)
2512       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
2513       CALL histwrite_phy(o_dqvdf, zx_tmp_fi3d)
2514       IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
2515       CALL histwrite_phy(o_dqvdf2d, zx_tmp_fi2d)
2516       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys
2517       CALL histwrite_phy(o_dteva, zx_tmp_fi3d)
2518       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys
2519       CALL histwrite_phy(o_dqeva, zx_tmp_fi3d)
2520       IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
2521       CALL histwrite_phy(o_dqeva2d, zx_tmp_fi2d)
2522       CALL histwrite_phy(o_ratqs, ratqs)
2523       IF (vars_defined) THEN
2524          zx_tmp_fi3d(1:klon,1:klev)=d_t_ajs(1:klon,1:klev)/pdtphys - &
2525               d_t_ajsb(1:klon,1:klev)/pdtphys
2526       ENDIF
2527       CALL histwrite_phy(o_dtthe, zx_tmp_fi3d)
2528       IF (vars_defined) THEN
2529          zx_tmp_fi3d(1:klon,1:klev)=d_u_ajs(1:klon,1:klev)/pdtphys
2530       ENDIF
2531       CALL histwrite_phy(o_duthe, zx_tmp_fi3d)
2532       IF (vars_defined) THEN
2533          zx_tmp_fi3d(1:klon,1:klev)=d_v_ajs(1:klon,1:klev)/pdtphys
2534       ENDIF
2535       CALL histwrite_phy(o_dvthe, zx_tmp_fi3d)
2536
2537       IF (ok_bs) THEN
2538          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_qbs_vdf(1:klon,1:klev)/pdtphys
2539          CALL histwrite_phy(o_dqbsvdf, zx_tmp_fi3d)
2540          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_qbs_bsss(1:klon,1:klev)/pdtphys
2541          CALL histwrite_phy(o_dqbsbs, zx_tmp_fi3d)
2542          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_bsss(1:klon,1:klev)/pdtphys
2543          CALL histwrite_phy(o_dqbs, zx_tmp_fi3d)
2544          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_bsss(1:klon,1:klev)/pdtphys
2545          CALL histwrite_phy(o_dtbs, zx_tmp_fi3d)
2546       ENDIF
2547
2548       IF (iflag_thermals>=1) THEN
2549          ! Pour l instant 0 a y reflichir pour les thermiques
2550          ! regroupe avec ftime_deepcv et ftime_con
2551          !!zx_tmp_fi2d=0.
2552          !!CALL histwrite_phy(o_ftime_th, zx_tmp_fi2d)
2553          CALL histwrite_phy(o_f_th, fm_therm)
2554          CALL histwrite_phy(o_e_th, entr_therm)
2555          CALL histwrite_phy(o_w_th, zw2)
2556          CALL histwrite_phy(o_q_th, zqasc)
2557          CALL histwrite_phy(o_a_th, fraca)
2558          CALL histwrite_phy(o_cloudth_sth, cloudth_sth)
2559          CALL histwrite_phy(o_cloudth_senv, cloudth_senv)
2560          CALL histwrite_phy(o_cloudth_sigmath, cloudth_sigmath)
2561          CALL histwrite_phy(o_cloudth_sigmaenv, cloudth_sigmaenv)
2562          CALL histwrite_phy(o_d_th, detr_therm)
2563          CALL histwrite_phy(o_f0_th, f0)
2564          CALL histwrite_phy(o_zmax_th, zmax_th)
2565          IF (vars_defined) THEN
2566             zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys-d_q_ajsb(1:klon,1:klev)/pdtphys
2567          ENDIF
2568          CALL histwrite_phy(o_dqthe, zx_tmp_fi3d)
2569          IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
2570          CALL histwrite_phy(o_dqthe2d, zx_tmp_fi2d)
2571       ENDIF !iflag_thermals
2572       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys
2573       CALL histwrite_phy(o_dtajs, zx_tmp_fi3d)
2574       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys
2575       CALL histwrite_phy(o_dqajs, zx_tmp_fi3d)
2576       IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
2577       CALL histwrite_phy(o_dqajs2d, zx_tmp_fi2d)
2578       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys
2579       CALL histwrite_phy(o_dtswr, zx_tmp_fi3d)
2580       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_sw0(1:klon,1:klev)/pdtphys
2581       CALL histwrite_phy(o_dtsw0, zx_tmp_fi3d)
2582       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lwr(1:klon,1:klev)/pdtphys
2583       CALL histwrite_phy(o_dtlwr, zx_tmp_fi3d)
2584       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lw0(1:klon,1:klev)/pdtphys
2585       CALL histwrite_phy(o_dtlw0, zx_tmp_fi3d)
2586       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)/pdtphys
2587       CALL histwrite_phy(o_dtec, zx_tmp_fi3d)
2588       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
2589       CALL histwrite_phy(o_duvdf, zx_tmp_fi3d)
2590       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
2591       CALL histwrite_phy(o_dvvdf, zx_tmp_fi3d)
2592       IF (ok_orodr) THEN
2593          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
2594          CALL histwrite_phy(o_duoro, zx_tmp_fi3d)
2595          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
2596          CALL histwrite_phy(o_dvoro, zx_tmp_fi3d)
2597          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_oro(1:klon,1:klev)/pdtphys
2598          CALL histwrite_phy(o_dtoro, zx_tmp_fi3d)
2599       ENDIF
2600       IF (ok_orolf) THEN
2601          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
2602          CALL histwrite_phy(o_dulif, zx_tmp_fi3d)
2603
2604          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
2605          CALL histwrite_phy(o_dvlif, zx_tmp_fi3d)
2606
2607          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lif(1:klon,1:klev)/pdtphys
2608          CALL histwrite_phy(o_dtlif, zx_tmp_fi3d)
2609       ENDIF
2610
2611       IF (ok_hines) THEN
2612          IF (vars_defined) zx_tmp_fi3d=du_gwd_hines/pdtphys
2613          CALL histwrite_phy(o_du_gwd_hines, zx_tmp_fi3d)
2614
2615          IF (vars_defined) zx_tmp_fi3d= dv_gwd_hines/pdtphys         
2616          CALL histwrite_phy(o_dv_gwd_hines, zx_tmp_fi3d)
2617         
2618          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_hin(1:klon,1:klev)/pdtphys
2619          CALL histwrite_phy(o_dthin, zx_tmp_fi3d)
2620          CALL histwrite_phy(o_ustr_gwd_hines, zustr_gwd_hines)
2621          CALL histwrite_phy(o_vstr_gwd_hines, zvstr_gwd_hines)
2622       ENDIF
2623
2624       IF (.not. ok_hines .and. ok_gwd_rando) THEN
2625          IF (vars_defined)  zx_tmp_fi3d=du_gwd_front / pdtphys
2626          CALL histwrite_phy(o_du_gwd_front, zx_tmp_fi3d)
2627         
2628          IF (vars_defined)  zx_tmp_fi3d=dv_gwd_front / pdtphys
2629          CALL histwrite_phy(o_dv_gwd_front, zx_tmp_fi3d)
2630         
2631          CALL histwrite_phy(o_ustr_gwd_front, zustr_gwd_front)
2632          CALL histwrite_phy(o_vstr_gwd_front, zvstr_gwd_front)
2633       ENDIF
2634
2635       IF (ok_gwd_rando) THEN
2636          IF (vars_defined)  zx_tmp_fi3d=du_gwd_rando / pdtphys
2637          CALL histwrite_phy(o_du_gwd_rando, zx_tmp_fi3d)
2638         
2639          IF (vars_defined)  zx_tmp_fi3d=dv_gwd_rando / pdtphys
2640          CALL histwrite_phy(o_dv_gwd_rando, zx_tmp_fi3d)
2641          CALL histwrite_phy(o_ustr_gwd_rando, zustr_gwd_rando)
2642          CALL histwrite_phy(o_vstr_gwd_rando, zvstr_gwd_rando)
2643          CALL histwrite_phy(o_east_gwstress, east_gwstress )
2644          CALL histwrite_phy(o_west_gwstress, west_gwstress )
2645       ENDIF
2646
2647       IF (ok_qch4) THEN
2648          IF (vars_defined) zx_tmp_fi3d=d_q_ch4
2649          CALL histwrite_phy(o_dqch4, zx_tmp_fi3d)
2650       ENDIF
2651       
2652       IF (vars_defined) THEN
2653         DO k=1, klevp1
2654           zx_tmp_fi3d1(:,k)=swup(:,k)*swradcorr(:)
2655         ENDDO
2656       ENDIF
2657       
2658       CALL histwrite_phy(o_rsu, zx_tmp_fi3d1)
2659
2660       IF (vars_defined) THEN
2661         DO k=1, klevp1
2662           zx_tmp_fi3d1(:,k)=swdn(:,k)*swradcorr(:)
2663         ENDDO
2664       ENDIF
2665       
2666       CALL histwrite_phy(o_rsd, zx_tmp_fi3d1)
2667
2668       IF (vars_defined) THEN
2669         DO k=1, klevp1
2670           zx_tmp_fi3d1(:,k)=swup0(:,k)*swradcorr(:)
2671         ENDDO
2672       ENDIF
2673       
2674       CALL histwrite_phy(o_rsucs, zx_tmp_fi3d1)
2675
2676       IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN
2677          IF (vars_defined) THEN
2678             DO k=1, klevp1
2679                zx_tmp_fi3d1(:,k)=swupc0(:,k)*swradcorr(:)
2680             ENDDO
2681          ENDIF
2682          CALL histwrite_phy(o_rsucsaf, zx_tmp_fi3d1)
2683       ENDIF
2684
2685       IF (vars_defined) THEN
2686         DO k=1, klevp1
2687           zx_tmp_fi3d1(:,k)=swdn0(:,k)*swradcorr(:)
2688         ENDDO
2689       ENDIF
2690       CALL histwrite_phy(o_rsdcs, zx_tmp_fi3d1)
2691
2692       IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN
2693          IF (vars_defined) THEN
2694             DO k=1, klevp1
2695                zx_tmp_fi3d1(:,k)=swdnc0(:,k)*swradcorr(:)
2696             ENDDO
2697          ENDIF
2698          CALL histwrite_phy(o_rsdcsaf, zx_tmp_fi3d1)
2699       ENDIF
2700
2701       CALL histwrite_phy(o_rlu, lwup)
2702       CALL histwrite_phy(o_rld, lwdn)
2703       CALL histwrite_phy(o_rlucs, lwup0)
2704       CALL histwrite_phy(o_rldcs, lwdn0)
2705
2706       IF (vars_defined) THEN
2707          zx_tmp_fi3d(1:klon,1:klev)=d_t(1:klon,1:klev)+ &
2708               d_t_dyn(1:klon,1:klev)
2709       ENDIF
2710       CALL histwrite_phy(o_tnt, zx_tmp_fi3d)
2711
2712       IF (vars_defined) THEN
2713          zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys + &
2714               d_t_lwr(1:klon,1:klev)/pdtphys
2715       ENDIF
2716       CALL histwrite_phy(o_tntr, zx_tmp_fi3d)
2717       IF (vars_defined) THEN
2718          zx_tmp_fi3d(1:klon,1:klev)= (d_t_lsc(1:klon,1:klev)+ &
2719               d_t_eva(1:klon,1:klev)+ &
2720               d_t_vdf(1:klon,1:klev))/pdtphys
2721       ENDIF
2722       CALL histwrite_phy(o_tntscpbl, zx_tmp_fi3d)
2723       IF (vars_defined) THEN
2724          zx_tmp_fi3d(1:klon,1:klev)=d_qx(1:klon,1:klev,ivap)+ &
2725               d_q_dyn(1:klon,1:klev)
2726       ENDIF
2727       CALL histwrite_phy(o_tnhus, zx_tmp_fi3d)
2728       IF (vars_defined) THEN
2729          zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys+ &
2730               d_q_eva(1:klon,1:klev)/pdtphys
2731       ENDIF
2732       CALL histwrite_phy(o_tnhusscpbl, zx_tmp_fi3d)
2733       CALL histwrite_phy(o_evu, coefm(:,:,is_ave))
2734       IF (vars_defined) THEN
2735          zx_tmp_fi3d(1:klon,1:klev)=q_seri(1:klon,1:klev)+ &
2736               ql_seri(1:klon,1:klev)
2737       ENDIF
2738       CALL histwrite_phy(o_h2o, zx_tmp_fi3d)
2739       IF (iflag_con >= 3) THEN
2740          IF (vars_defined) THEN
2741             zx_tmp_fi3d(1:klon,1:klev)=-1 * (dnwd(1:klon,1:klev)+ &
2742                  dnwd0(1:klon,1:klev))
2743          ENDIF
2744          CALL histwrite_phy(o_mcd, zx_tmp_fi3d)
2745          IF (vars_defined) THEN
2746             zx_tmp_fi3d(1:klon,1:klev)=upwd(1:klon,1:klev) + &
2747                  dnwd(1:klon,1:klev)+ dnwd0(1:klon,1:klev)
2748          ENDIF
2749          CALL histwrite_phy(o_dmc, zx_tmp_fi3d)
2750       ELSE IF (iflag_con == 2) THEN
2751          CALL histwrite_phy(o_mcd,  pmfd)
2752          IF (vars_defined) zx_tmp_fi3d = pmfu + pmfd
2753          CALL histwrite_phy(o_dmc,  zx_tmp_fi3d)
2754       ENDIF
2755       CALL histwrite_phy(o_ref_liq, ref_liq)
2756       CALL histwrite_phy(o_ref_ice, ref_ice)
2757!
2758       IF (ok_4xCO2atm) THEN
2759          IF (vars_defined) zx_tmp_fi2d(:) = swupp(:,klevp1)*swradcorr(:)
2760          CALL histwrite_phy(o_rsut4co2, zx_tmp_fi2d)
2761          IF (vars_defined) zx_tmp_fi2d(:) = lwupp(:,klevp1)
2762          CALL histwrite_phy(o_rlut4co2, zx_tmp_fi2d)
2763          IF (vars_defined) zx_tmp_fi2d(:) = swup0p(:,klevp1)*swradcorr(:)
2764          CALL histwrite_phy(o_rsutcs4co2, zx_tmp_fi2d)
2765          IF (vars_defined) zx_tmp_fi2d(:) = lwup0p(:,klevp1)
2766          CALL histwrite_phy(o_rlutcs4co2, zx_tmp_fi2d)
2767          IF (vars_defined) THEN
2768            DO k=1, klevp1
2769              zx_tmp_fi3d1(:,k)=swupp(:,k)*swradcorr(:)
2770            ENDDO
2771          ENDIF
2772          CALL histwrite_phy(o_rsu4co2, zx_tmp_fi3d1)
2773          IF (vars_defined) THEN
2774            DO k=1, klevp1
2775              zx_tmp_fi3d1(:,k)=swup0p(:,k)*swradcorr(:)
2776            ENDDO
2777          ENDIF
2778          CALL histwrite_phy(o_rsucs4co2, zx_tmp_fi3d1)
2779          IF (vars_defined) THEN
2780            DO k=1, klevp1
2781              zx_tmp_fi3d1(:,k)=swdnp(:,k)*swradcorr(:)
2782            ENDDO
2783          ENDIF
2784          CALL histwrite_phy(o_rsd4co2, zx_tmp_fi3d1)
2785          IF (vars_defined) THEN
2786            DO k=1, klevp1
2787              zx_tmp_fi3d1(:,k)=swdn0p(:,k)*swradcorr(:)
2788            ENDDO
2789          ENDIF
2790          CALL histwrite_phy(o_rsdcs4co2, zx_tmp_fi3d1)
2791          CALL histwrite_phy(o_rlu4co2, lwupp)
2792          CALL histwrite_phy(o_rlucs4co2, lwup0p)
2793          CALL histwrite_phy(o_rld4co2, lwdnp)
2794          CALL histwrite_phy(o_rldcs4co2, lwdn0p)
2795       ENDIF !ok_4xCO2atm
2796!!!!!!!!!!!! Sorties niveaux de pression NMC !!!!!!!!!!!!!!!!!!!!
2797       IF (.NOT. using_xios) THEN
2798         IF (.NOT.ok_all_xml) THEN
2799           ! ATTENTION, LES ANCIENS HISTWRITE ONT ETES CONSERVES EN ATTENDANT MIEUX:
2800           ! Champs interpolles sur des niveaux de pression
2801           DO iff=7, nfiles-1 !--OB: here we deal with files 7,8,9
2802
2803             CALL histwrite_phy(o_tnondef,tnondef(:,:,iff-6),iff)
2804             CALL histwrite_phy(o_ta,twriteSTD(:,:,iff-6),iff)
2805             CALL histwrite_phy(o_zg,phiwriteSTD(:,:,iff-6),iff)
2806             CALL histwrite_phy(o_hus,qwriteSTD(:,:,iff-6),iff)
2807             CALL histwrite_phy(o_hur,rhwriteSTD(:,:,iff-6),iff)
2808             CALL histwrite_phy(o_ua,uwriteSTD(:,:,iff-6),iff)
2809             CALL histwrite_phy(o_va,vwriteSTD(:,:,iff-6),iff)
2810             CALL histwrite_phy(o_wap,wwriteSTD(:,:,iff-6),iff)
2811             IF (vars_defined) THEN
2812               DO k=1, nlevSTD
2813                  DO i=1, klon
2814                     IF (tnondef(i,k,iff-6).NE.missing_val) THEN
2815                       IF (freq_outNMC(iff-6).LT.0) THEN
2816                          freq_moyNMC(iff-6)=(mth_len*un_jour)/freq_calNMC(iff-6)
2817                       ELSE
2818                          freq_moyNMC(iff-6)=freq_outNMC(iff-6)/freq_calNMC(iff-6)
2819                       ENDIF
2820                       zx_tmp_fi3d_STD(i,k) = (100.*tnondef(i,k,iff-6))/freq_moyNMC(iff-6)
2821                     ELSE
2822                       zx_tmp_fi3d_STD(i,k) = missing_val
2823                     ENDIF
2824                  ENDDO
2825               ENDDO
2826             ENDIF
2827             CALL histwrite_phy(o_psbg,zx_tmp_fi3d_STD,iff)
2828             IF (vars_defined) THEN
2829               DO k=1, nlevSTD
2830                  DO i=1, klon
2831                    IF (O3sumSTD(i,k,iff-6).NE.missing_val) THEN
2832                       zx_tmp_fi3d_STD(i,k) = O3sumSTD(i,k,iff-6) * 1.e+9
2833                    ELSE
2834                       zx_tmp_fi3d_STD(i,k) = missing_val
2835                    ENDIF
2836                  ENDDO
2837               ENDDO !k=1, nlevSTD
2838             ENDIF
2839             CALL histwrite_phy(o_tro3,zx_tmp_fi3d_STD,iff)
2840             IF (read_climoz == 2) THEN
2841               IF (vars_defined) THEN
2842                 DO k=1, nlevSTD
2843                   DO i=1, klon
2844                      IF (O3daysumSTD(i,k,iff-6).NE.missing_val) THEN
2845                         zx_tmp_fi3d_STD(i,k) = O3daysumSTD(i,k,iff-6) * 1.e+9
2846                      ELSE
2847                         zx_tmp_fi3d_STD(i,k) = missing_val
2848                      ENDIF
2849                   ENDDO
2850                 ENDDO !k=1, nlevSTD
2851               ENDIF
2852               CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d_STD,iff)
2853             ENDIF
2854             CALL histwrite_phy(o_uxv,uvsumSTD(:,:,iff-6),iff)
2855             CALL histwrite_phy(o_vxq,vqsumSTD(:,:,iff-6),iff)
2856             CALL histwrite_phy(o_vxT,vTsumSTD(:,:,iff-6),iff)
2857             CALL histwrite_phy(o_wxq,wqsumSTD(:,:,iff-6),iff)
2858             CALL histwrite_phy(o_vxphi,vphisumSTD(:,:,iff-6),iff)
2859             CALL histwrite_phy(o_wxT,wTsumSTD(:,:,iff-6),iff)
2860             CALL histwrite_phy(o_uxu,u2sumSTD(:,:,iff-6),iff)
2861             CALL histwrite_phy(o_vxv,v2sumSTD(:,:,iff-6),iff)
2862             CALL histwrite_phy(o_TxT,T2sumSTD(:,:,iff-6),iff)
2863           ENDDO !nfiles
2864         ENDIF
2865       ENDIF !.NOT. using_xios
2866
2867
2868       IF (using_xios) THEN
2869         IF (ok_all_xml) THEN
2870    !      DO iff=7, nfiles
2871
2872!         CALL histwrite_phy(o_tnondef,tnondef(:,:,3))
2873          CALL histwrite_phy(o_ta,tlevSTD(:,:))
2874          CALL histwrite_phy(o_zg,philevSTD(:,:))
2875          CALL histwrite_phy(o_hus,qlevSTD(:,:))
2876          CALL histwrite_phy(o_hur,rhlevSTD(:,:))
2877          CALL histwrite_phy(o_ua,ulevSTD(:,:))
2878          CALL histwrite_phy(o_va,vlevSTD(:,:))
2879          CALL histwrite_phy(o_wap,wlevSTD(:,:))
2880!         IF (vars_defined) THEN
2881!            DO k=1, nlevSTD
2882!               DO i=1, klon
2883!                  IF (tnondef(i,k,3).NE.missing_val) THEN
2884!                     IF (freq_outNMC(iff-6).LT.0) THEN
2885!                        freq_moyNMC(iff-6)=(mth_len*un_jour)/freq_calNMC(iff-6)
2886!                     ELSE
2887!                        freq_moyNMC(iff-6)=freq_outNMC(iff-6)/freq_calNMC(iff-6)
2888!                     ENDIF
2889!                     zx_tmp_fi3d_STD(i,k) = (100.*tnondef(i,k,3))/freq_moyNMC(iff-6)
2890!                  ELSE
2891!                     zx_tmp_fi3d_STD(i,k) = missing_val
2892!                  ENDIF
2893!               ENDDO
2894!            ENDDO
2895!         ENDIF
2896!         CALL histwrite_phy(o_psbg,zx_tmp_fi3d_STD)
2897          IF (vars_defined) THEN
2898             DO k=1, nlevSTD
2899                DO i=1, klon
2900                   IF (O3STD(i,k).NE.missing_val) THEN
2901                      zx_tmp_fi3d_STD(i,k) = O3STD(i,k) * 1.e+9
2902                   ELSE
2903                      zx_tmp_fi3d_STD(i,k) = missing_val
2904                   ENDIF
2905                ENDDO
2906             ENDDO !k=1, nlevSTD
2907          ENDIF
2908          CALL histwrite_phy(o_tro3,zx_tmp_fi3d_STD)
2909          IF (read_climoz == 2) THEN
2910             IF (vars_defined) THEN
2911                DO k=1, nlevSTD
2912                   DO i=1, klon
2913                      IF (O3daySTD(i,k).NE.missing_val) THEN
2914                         zx_tmp_fi3d_STD(i,k) = O3daySTD(i,k) * 1.e+9
2915                      ELSE
2916                         zx_tmp_fi3d_STD(i,k) = missing_val
2917                      ENDIF
2918                   ENDDO
2919                ENDDO !k=1, nlevSTD
2920             ENDIF
2921             CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d_STD)
2922          ENDIF
2923          CALL histwrite_phy(o_uxv,uvSTD(:,:))
2924          CALL histwrite_phy(o_vxq,vqSTD(:,:))
2925          CALL histwrite_phy(o_vxT,vTSTD(:,:))
2926          CALL histwrite_phy(o_wxq,wqSTD(:,:))
2927          CALL histwrite_phy(o_vxphi,vphiSTD(:,:))
2928          CALL histwrite_phy(o_wxT,wTSTD(:,:))
2929          CALL histwrite_phy(o_uxu,u2STD(:,:))
2930          CALL histwrite_phy(o_vxv,v2STD(:,:))
2931          CALL histwrite_phy(o_TxT,T2STD(:,:))
2932!      ENDDO !nfiles
2933    ENDIF
2934  ENDIF !using_xios
2935!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2936       IF (iflag_phytrac == 1 ) then
2937!
2938         IF (type_trac == 'co2i') THEN
2939           itr = 0
2940           DO iq = 1, nqtot
2941             IF(.NOT.tracers(iq)%isInPhysics) CYCLE
2942             itr = itr + 1
2943!            write(*,*) 'phys_output_write_mod 2370: itr=',itr
2944             !--3D fields
2945             CALL histwrite_phy(o_trac(itr), tr_seri(:,:,itr))
2946             CALL histwrite_phy(o_dtr_vdf(itr),d_tr_cl(:,:,itr))
2947             CALL histwrite_phy(o_dtr_the(itr),d_tr_th(:,:,itr))
2948             CALL histwrite_phy(o_dtr_con(itr),d_tr_cv(:,:,itr))
2949             !--2D fields
2950             !--CO2 burden
2951             zx_tmp_fi2d=0.
2952             IF (vars_defined) THEN
2953                DO k=1,klev
2954                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*tr_seri(:,k,itr)
2955                ENDDO
2956             ENDIF
2957             CALL histwrite_phy(o_trac_cum(itr), zx_tmp_fi2d)
2958           ENDDO !--iq
2959           !--CO2 net fluxes
2960           CALL histwrite_phy(o_flx_co2_land,  fco2_land)
2961           CALL histwrite_phy(o_flx_co2_ocean, fco2_ocean)
2962           CALL histwrite_phy(o_flx_co2_ocean_cor, fco2_ocean_cor)
2963           CALL histwrite_phy(o_flx_co2_land_cor, fco2_land_cor)
2964           CALL histwrite_phy(o_flx_co2_ff,    fco2_ff)
2965           CALL histwrite_phy(o_flx_co2_bb,    fco2_bb)
2966
2967         ELSE IF (type_trac == 'inco') THEN
2968           itr = 0
2969           DO iq = 1, nqtot
2970             IF(.NOT.tracers(iq)%isInPhysics) CYCLE
2971             itr = itr+1
2972             IF(tracers(iq)%component /= 'co2i') CYCLE
2973             !--3D fields
2974             CALL histwrite_phy(o_trac   (itr),tr_seri(:,:,itr))
2975             CALL histwrite_phy(o_dtr_vdf(itr),d_tr_cl(:,:,itr))
2976             CALL histwrite_phy(o_dtr_the(itr),d_tr_th(:,:,itr))
2977             CALL histwrite_phy(o_dtr_con(itr),d_tr_cv(:,:,itr))
2978             !--2D fields
2979             !--CO2 burden
2980             zx_tmp_fi2d=0.
2981             IF (vars_defined) THEN
2982                DO k=1,klev
2983                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*tr_seri(:,k,itr)
2984                ENDDO
2985             ENDIF
2986             CALL histwrite_phy(o_trac_cum(itr), zx_tmp_fi2d)
2987           ENDDO !--iq
2988           !--CO2 net fluxes
2989           CALL histwrite_phy(o_flx_co2_land,  fco2_land)
2990           CALL histwrite_phy(o_flx_co2_ocean, fco2_ocean)
2991           CALL histwrite_phy(o_flx_co2_ocean_cor, fco2_ocean_cor)
2992           CALL histwrite_phy(o_flx_co2_land_cor, fco2_land_cor)
2993           CALL histwrite_phy(o_flx_co2_ff,    fco2_ff)
2994           CALL histwrite_phy(o_flx_co2_bb,    fco2_bb)
2995
2996         ELSE IF (ANY(type_trac==['lmdz','coag'])) THEN
2997           itr = 0
2998           DO iq = 1, nqtot
2999             IF(.NOT.tracers(iq)%isInPhysics) CYCLE
3000             itr = itr + 1
3001!            write(*,*) 'phys_output_write_mod 2337: itr=',itr
3002             !--3D fields
3003             CALL histwrite_phy(o_trac(itr), tr_seri(:,:,itr))
3004             CALL histwrite_phy(o_dtr_vdf(itr),d_tr_cl(:,:,itr))
3005             CALL histwrite_phy(o_dtr_the(itr),d_tr_th(:,:,itr))
3006             CALL histwrite_phy(o_dtr_con(itr),d_tr_cv(:,:,itr))
3007             CALL histwrite_phy(o_dtr_lessi_impa(itr),d_tr_lessi_impa(:,:,itr))
3008             CALL histwrite_phy(o_dtr_lessi_nucl(itr),d_tr_lessi_nucl(:,:,itr))
3009             CALL histwrite_phy(o_dtr_insc(itr),d_tr_insc(:,:,itr))
3010             CALL histwrite_phy(o_dtr_bcscav(itr),d_tr_bcscav(:,:,itr))
3011             CALL histwrite_phy(o_dtr_evapls(itr),d_tr_evapls(:,:,itr))
3012             CALL histwrite_phy(o_dtr_ls(itr),d_tr_ls(:,:,itr))
3013             CALL histwrite_phy(o_dtr_trsp(itr),d_tr_trsp(:,:,itr))
3014             CALL histwrite_phy(o_dtr_sscav(itr),d_tr_sscav(:,:,itr))
3015             CALL histwrite_phy(o_dtr_sat(itr),d_tr_sat(:,:,itr))
3016             CALL histwrite_phy(o_dtr_uscav(itr),d_tr_uscav(:,:,itr))
3017            !--2D fields
3018             ! flux*_wet and _wet_cv are introduced in r5473. They work with IOIPSL.
3019             ! For XIOS, the corresponding fields must be added in field_def_lmdz.xml for the LMDZ tracers. 
3020             ! Until then, these outputs are commented out.
3021             !CALL histwrite_phy(o_dtr_wet_cv(itr), flux_tr_wet_cv(:,itr))
3022             !CALL histwrite_phy(o_dtr_wet(itr), flux_tr_wet(:,itr))
3023             CALL histwrite_phy(o_dtr_dry(itr), flux_tr_dry(:,itr))
3024             zx_tmp_fi2d=0.
3025             IF (vars_defined) THEN
3026                DO k=1,klev
3027                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*tr_seri(:,k,itr)
3028                ENDDO
3029             ENDIF
3030             CALL histwrite_phy(o_trac_cum(itr), zx_tmp_fi2d)
3031           ENDDO !--iq
3032         ENDIF   !--type_trac
3033       ENDIF   !(iflag_phytrac==1)
3034
3035       if (activate_ocean_skin >= 1) then
3036          CALL histwrite_phy(o_delta_sst, delta_sst)
3037          CALL histwrite_phy(o_delta_sal, delta_sal)
3038          CALL histwrite_phy(o_ds_ns, ds_ns)
3039          CALL histwrite_phy(o_dt_ns, dt_ns)
3040          CALL histwrite_phy(o_dter, dter)
3041          CALL histwrite_phy(o_dser, dser)
3042          CALL histwrite_phy(o_tkt, tkt)
3043          CALL histwrite_phy(o_tks, tks)
3044          CALL histwrite_phy(o_taur, taur)
3045          CALL histwrite_phy(o_sss, sss)
3046       end if
3047
3048    !! runoff land bucket - ajout S. Nguyen 23 07 2024
3049    CALL histwrite_phy(o_runoff_diag, runoff_diag)
3050
3051#ifdef ISO
3052    !write(*,*) 'tmp phys_output_write: ntiso=',ntiso
3053
3054    DO ixt = 1, ntiso
3055        !write(*,*) 'ixt,o_xtovap(ixt)=',ixt,o_xtovap(ixt)
3056        IF (vars_defined) zx_tmp_fi2d(:) = xtrain_fall(ixt,:) + xtsnow_fall(ixt,:)
3057        CALL histwrite_phy(o_xtprecip(ixt), zx_tmp_fi2d)
3058
3059        IF (vars_defined) zx_tmp_fi2d(:) = xtrain_lsc(ixt,:) + xtsnow_lsc(ixt,:)
3060        CALL histwrite_phy(o_xtplul(ixt), zx_tmp_fi2d)
3061
3062        IF (vars_defined) zx_tmp_fi2d(:) = xtrain_con(ixt,:) + xtsnow_con(ixt,:)
3063        CALL histwrite_phy(o_xtpluc(ixt), zx_tmp_fi2d)
3064        CALL histwrite_phy(o_xtevap(ixt),   xtevap(ixt,:))
3065        CALL histwrite_phy(o_xtovap(ixt),  xt_seri(ixt,:,:))
3066        CALL histwrite_phy(o_xtoliq(ixt), xtl_seri(ixt,:,:))
3067
3068        !! runoff land bucket - ajout S. Nguyen 25 avril 2024
3069        CALL histwrite_phy(o_xtrunoff_diag(ixt), xtrunoff_diag(ixt,:))
3070
3071
3072        DO nsrf = 1, nbsrf ! ajout Camille 8 mai 2023
3073        IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fxtevap(ixt,:, nsrf)
3074        CALL histwrite_phy(o_xtevap_srf(ixt,nsrf), zx_tmp_fi2d)
3075        ENDDO
3076
3077        IF (vars_defined) zx_tmp_fi3d(:,:)=xtl_seri(ixt,:,:)+xts_seri(ixt,:,:)
3078        CALL histwrite_phy(o_xtcond(ixt), zx_tmp_fi3d)
3079        CALL histwrite_phy(o_dxtdyn(ixt),   d_xt_dyn(ixt,:,:))
3080        CALL histwrite_phy(o_dxtldyn(ixt), d_xtl_dyn(ixt,:,:))
3081
3082        IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_con(ixt,:,:)/pdtphys
3083        CALL histwrite_phy(o_dxtcon(ixt), zx_tmp_fi3d)
3084
3085        IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_lsc(ixt,:,:)/pdtphys
3086        CALL histwrite_phy(o_dxtlsc(ixt), zx_tmp_fi3d)
3087
3088        IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_eva(ixt,:,:)/pdtphys
3089        CALL histwrite_phy(o_dxteva(ixt), zx_tmp_fi3d)
3090
3091        IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_vdf(ixt,:,:)/pdtphys
3092        CALL histwrite_phy(o_dxtvdf(ixt), zx_tmp_fi3d)
3093
3094        IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_ajsb(ixt,:,:)/pdtphys
3095        CALL histwrite_phy(o_dxtajs(ixt), zx_tmp_fi3d)
3096
3097        IF (vars_defined) zx_tmp_fi3d(:,:)=(d_xt_ajs(ixt,:,:)-d_xt_ajsb(ixt,:,:))/pdtphys
3098        CALL histwrite_phy(o_dxtthe(ixt), zx_tmp_fi3d)
3099
3100        IF (ok_qch4) THEN
3101          IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_ch4(ixt,:,:)/pdtphys
3102          CALL histwrite_phy(o_dxtch4(ixt), zx_tmp_fi3d)
3103        ENDIF
3104
3105        IF (ixt == iso_HTO) THEN
3106          IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_prod_nucl(ixt,:,:)/pdtphys
3107          CALL histwrite_phy(o_dxtprod_nucl(ixt), zx_tmp_fi3d)
3108
3109          IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_cosmo(ixt,:,:)/pdtphys
3110          CALL histwrite_phy(o_dxtcosmo(ixt), zx_tmp_fi3d)
3111
3112          IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_decroiss(ixt,:,:)/pdtphys
3113          CALL histwrite_phy(o_dxtdecroiss(ixt), zx_tmp_fi3d)
3114        ENDIF
3115
3116    !write(*,*) 'phys_output_write_mod 2531'
3117    ENDDO
3118#endif
3119
3120       IF (.NOT.vars_defined) THEN
3121          !$OMP MASTER
3122#ifndef CPP_IOIPSL_NO_OUTPUT
3123          DO iff=1,nfiles
3124             IF (clef_files(iff)) THEN
3125                CALL histend(nid_files(iff))
3126                ndex2d = 0
3127                ndex3d = 0
3128             ENDIF ! clef_files
3129          ENDDO !  iff
3130#endif
3131
3132!SN activate water isotopes present in tracer.def
3133#ifdef ISO
3134          DO ixt = 1, ntiso
3135            outiso = TRIM(isoName(ixt))
3136            i = INDEX(outiso, '_', .TRUE.)
3137            outiso = outiso(1:i-1)//outiso(i+1:LEN_TRIM(outiso))
3138
3139            CALL xios_set_fieldgroup_attr("iso2D_"//TRIM(outiso), enabled=.TRUE.)
3140            CALL xios_set_fieldgroup_attr("iso3D_"//TRIM(outiso), enabled=.TRUE.)
3141
3142          ENDDO
3143#endif
3144          !On finalise l'initialisation:
3145          IF (using_xios) CALL wxios_closedef()
3146
3147          !$OMP END MASTER
3148          !$OMP BARRIER
3149          vars_defined = .TRUE.
3150
3151       ENDIF !--.NOT.vars_defined
3152
3153    ENDDO
3154
3155    IF (vars_defined) THEN
3156       ! On synchronise les fichiers pour IOIPSL
3157#ifndef CPP_IOIPSL_NO_OUTPUT
3158       !$OMP MASTER
3159       DO iff=1,nfiles
3160          IF (ok_sync .AND. clef_files(iff)) THEN
3161             CALL histsync(nid_files(iff))
3162          ENDIF
3163       ENDDO
3164       !$OMP END MASTER
3165#endif
3166    ENDIF
3167
3168  END SUBROUTINE phys_output_write
3169
3170END MODULE phys_output_write_mod
Note: See TracBrowser for help on using the repository browser.