source: LMDZ6/branches/Amaury_dev/libf/phylmd/phys_output_write_mod.F90 @ 5411

Last change on this file since 5411 was 5224, checked in by abarral, 3 months ago

Merge r5204 r5205
Light lint
Correct missing IOIPSL includes

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