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

Last change on this file since 5481 was 5473, checked in by jyg, 2 weeks ago

output the total wet deposit of tracers (convective + large scale)

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