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

Last change on this file since 4705 was 4703, checked in by Laurent Fairhead, 10 months ago

Moving around some variable declarations to their right place

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