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

Last change on this file since 3459 was 3453, checked in by oboucher, 6 years ago

Adding some diagnostics for type_trac=co2i

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