source: LMDZ6/branches/Ocean_skin/libf/phylmd/phys_output_write_mod.F90 @ 3766

Last change on this file since 3766 was 3747, checked in by lguez, 4 years ago

Bug fix: revert revision [3601]

Bug fix: revert revision [3601]. Procedure phys_output_write is
called a first time by physiq before the call to phyetat0, so before
ftsoil is allocated. So we cannot reference `ftsoil(:, nsoilmx,
is_ter) in phys_output_write`.

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