source: LMDZ6/branches/Portage_acc/libf/phylmd/phys_output_write_mod.F90 @ 4743

Last change on this file since 4743 was 4743, checked in by Laurent Fairhead, 7 months ago

Merge of ACC branch with 4740 revision from trunk

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