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

Last change on this file since 5649 was 5627, checked in by amaison, 2 months ago

Representation of heterogeneous continental subsurfaces with parameter or flux aggregation in the simplified surface model (bucket) for 1D case studies.

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