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

Last change on this file since 4570 was 4556, checked in by musat, 18 months ago

Correction diagnostic ndayrain
Ionela Musat

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