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

Last change on this file since 3480 was 3480, checked in by Laurent Fairhead, 5 years ago

Integration of revisions 3425 through 3427 from IPSLCM6.0.15 branch into the trunk
LF

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