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

Last change on this file since 4070 was 4070, checked in by oboucher, 2 years ago

Some diagnostics are subject to the flag being activated.

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