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

Last change on this file since 4791 was 4773, checked in by idelkadi, 19 months ago
  • Update of Ecrad in LMDZ The same organization of the Ecrad offline version is retained in order to facilitate the updating of Ecrad in LMDZ and the comparison between online and offline results. version 1.6.1 of Ecrad (https://github.com/lguez/ecrad.git)
  • Implementation of the double call of Ecrad in LMDZ


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