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

Last change on this file since 4705 was 4703, checked in by Laurent Fairhead, 10 months ago

Moving around some variable declarations to their right place

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