source: LMDZ6/branches/LMDZ_ECRad/libf/phylmd/phys_output_write_mod.F90 @ 4926

Last change on this file since 4926 was 4771, checked in by idelkadi, 7 months ago

Correction: output of the cloud fraction sw from Ecrad corresponding to the 2nd call

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