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

Last change on this file since 3505 was 3496, checked in by jyg, 6 years ago

Implementation of the ejection of liquid precipitation from the adiabatic ascents.
New flags:
+cvflag_prec_eject: logical

n -> old code, y -> new code

+ejectliq: real; possible values 0. & 1.

  1. -> no liquid precipitation is ejected
  2. -> all liquid precipitation is ejected

+ejectice: real; any value between 0. and 1.

fraction of solid precipitation ejected at each level

Note that the adiabatic ascent mass flux decrease due to precipitation ejection is not taken into account.

Attempts to do it led to water conservation violation.

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