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

Last change on this file since 5255 was 5252, checked in by abarral, 9 months ago

Wrap uses of cpp key REPROBUS and CPP_STRATAER
Add REPROBUS wrapper

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