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

Last change on this file since 4744 was 4737, checked in by oboucher, 12 months ago

moving the calculation of wfbilo wfrain and wfsnow inside phys_output_write_mod so that it uses the timestep values of rain and snow instead of the values from the previous timestep as it was the case in pbl_surface. Thus there is exact mass balance in the output.

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