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

Last change on this file since 5322 was 5310, checked in by abarral, 2 weeks ago

unify abort_gcm
rename wxios -> wxios_mod

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