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

Last change on this file since 4881 was 4881, checked in by evignon, 2 months ago

extraction plus propre de la dissipation de TKE

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