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

Last change on this file since 3981 was 3956, checked in by jyg, 3 years ago

Bug fixes concerning various variables ill-initialized, ill-used, ill-printed, or ill-placed.
+ cv_gen moved from phys_local_var_mod.F90 to phys_state_var_mod.F90; ==> changes in physiq_mod.F90
and phys_output_write.F90
+ awake_dens added in phys_state_var_mod.F90
+ cv_gen and awake_dens now initialized in phyetat0.F90 and written in phyredem.F90
+ cv_gen, awake_dens, and solswfdiff now initialized in old_lmdz1d.F90 and scm.F90
+ useless variables suppressed in pbl_surface_mod.F90.

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