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

Last change on this file since 5425 was 5384, checked in by evignon, 2 weeks ago

ajout de diagnostiques des tendances de precip, Audran Borella

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