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

Last change on this file since 4803 was 4803, checked in by evignon, 17 months ago

implementation sous flag des premiers changements
concernant le traitement des precipitations grande echelle
dans le cadre de l'atelier nuages
Audran, Lea, Niels, Gwendal et Etienne

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