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

Last change on this file since 4666 was 4619, checked in by yann meurdesoif, 14 months ago

Suppress usage of preprocessing key CPP_XIOS.
Wrapper file is used to suppress XIOS symbol when xios is not linked and not used (-io ioipsl)
The CPP_XIOS key is replaced in model by "using_xios" boolean variable to switch between IOIPSL or XIOS output.

YM

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