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

Last change on this file since 5134 was 5109, checked in by Sebastien Nguyen, 5 months ago

added runoffland (bucket runoff) to outputs and automatic output for water isotopes defined in tracer.def

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