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

Last change on this file since 4185 was 4170, checked in by dcugnet, 2 years ago

The variable "types_trac" is the equivalent of "type_trac" in case multiple sections must be read
and used in "tracer.def" file.
Tests on the "type_trac" were replaced with tests on the vector "types_trac".
Most of the time, there are two components: 'lmdz' and a second one. The later has priority on 'lmdz'
and must be used for the tests. For more components, care must be taken to execute specific parts
of the code on the right tracers ; the tracers(:)%component has been created in that respect.

  • 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: 110.7 KB
RevLine 
[1798]1!
[2429]2! $Id: phys_output_write_mod.F90 4170 2022-06-16 18:16:59Z fairhead $
[1798]3!
4MODULE phys_output_write_mod
5
[1898]6  USE phytrac_mod, ONLY : d_tr_cl, d_tr_th, d_tr_cv, d_tr_lessi_impa, &
7       d_tr_lessi_nucl, d_tr_insc, d_tr_bcscav, d_tr_evapls, d_tr_ls,  &
[2704]8       d_tr_trsp, d_tr_sscav, d_tr_sat, d_tr_uscav, flux_tr_dry
[1813]9
[1898]10  ! Author: Abderrahmane IDELKADI (original include file)
11  ! Author: Laurent FAIRHEAD (transformation to module/subroutine)
12  ! Author: Ulysse GERARD (effective implementation)
[1813]13
[1898]14CONTAINS
[1798]15
[3121]16  ! ug Routine pour définir (lors du premier passage) ET sortir les variables
[1898]17  SUBROUTINE phys_output_write(itap, pdtphys, paprs, pphis, &
18       pplay, lmax_th, aerosol_couple,         &
[3630]19       ok_ade, ok_aie, ok_volcan, ivap, iliq, isol, ok_sync, &
[1915]20       ptconv, read_climoz, clevSTD, ptconvth, &
[2665]21       d_u, d_t, qx, d_qx, zmasse, flag_aerosol, flag_aerosol_strat, ok_cdnc)
[1798]22
[1898]23    ! This subroutine does the actual writing of diagnostics that were
24    ! defined and initialised in phys_output_mod.F90
[1798]25
[2704]26    USE dimphy, ONLY: klon, klev, klevp1
[4170]27    USE infotrac_phy, ONLY: nbtr, nqtot, nqo, types_trac, tracers, niso, ntiso
[4046]28    USE strings_mod,  ONLY: maxlen
[2429]29    USE mod_phys_lmdz_para, ONLY: is_north_pole_phy,is_south_pole_phy
[2344]30    USE mod_grid_phy_lmdz, ONLY : nbp_lon, nbp_lat
[2704]31    USE time_phylmdz_mod, ONLY: day_step_phy, start_time, itau_phy
[3003]32    USE vertical_layers_mod, ONLY : ap, bp, aps, bps
[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"
[4089]428    INCLUDE "alpale.h"
[1798]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
[4071]543            IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
[4056]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
[4071]597            IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) 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
[4170]944       IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN
[4106]945          IF (vars_defined) THEN
946             zx_tmp_fi2d(:) = swupc0(:,klevp1)*swradcorr(:)
947          ENDIF
948          CALL histwrite_phy(o_SWupTOAcleanclr, zx_tmp_fi2d)
[3082]949       ENDIF
950
951       IF (vars_defined) THEN
[2366]952          zx_tmp_fi2d(:) = swdn(:,klevp1)*swradcorr(:)
[1898]953       ENDIF
954       CALL histwrite_phy(o_SWdnTOA, zx_tmp_fi2d)
[1813]955
[1898]956       IF (vars_defined) THEN
[2366]957          zx_tmp_fi2d(:) = swdn0(:,klevp1)*swradcorr(:)
[1898]958       ENDIF
959       CALL histwrite_phy(o_SWdnTOAclr, zx_tmp_fi2d)
[1813]960
[1898]961       IF (vars_defined) THEN
[2366]962          zx_tmp_fi2d(:) = topsw(:)*swradcorr(:)-toplw(:)
[1898]963       ENDIF
964       CALL histwrite_phy(o_nettop, zx_tmp_fi2d)
[3435]965       
966       IF (vars_defined) THEN
967          zx_tmp_fi2d = SWup200*swradcorr
968       ENDIF
969       CALL histwrite_phy(o_SWup200, zx_tmp_fi2d)
970       
971       IF (vars_defined) THEN
972          zx_tmp_fi2d = SWup200clr*swradcorr
973       ENDIF
974       CALL histwrite_phy(o_SWup200clr, zx_tmp_fi2d)
975       
976       IF (vars_defined) THEN
977          zx_tmp_fi2d = SWdn200*swradcorr
978       ENDIF
979       CALL histwrite_phy(o_SWdn200, zx_tmp_fi2d)
980       
981       
982       IF (vars_defined) THEN
983          zx_tmp_fi2d = SWdn200clr*swradcorr
984       ENDIF
985       CALL histwrite_phy(o_SWdn200clr, zx_tmp_fi2d)
986       
[1898]987       CALL histwrite_phy(o_LWup200, LWup200)
988       CALL histwrite_phy(o_LWup200clr, LWup200clr)
989       CALL histwrite_phy(o_LWdn200, LWdn200)
990       CALL histwrite_phy(o_LWdn200clr, LWdn200clr)
[3435]991       
992       IF (vars_defined) THEN
993          zx_tmp_fi2d = solsw*swradcorr
994       ENDIF
995       CALL histwrite_phy(o_sols, zx_tmp_fi2d)
996       
997       
998       IF (vars_defined) THEN
999          zx_tmp_fi2d = solsw0*swradcorr
1000       ENDIF
1001       CALL histwrite_phy(o_sols0, zx_tmp_fi2d)
[1898]1002       CALL histwrite_phy(o_soll, sollw)
[2366]1003       CALL histwrite_phy(o_soll0, sollw0)
[1898]1004       CALL histwrite_phy(o_radsol, radsol)
[1813]1005
[1898]1006       IF (vars_defined) THEN
[2366]1007          zx_tmp_fi2d(:) = swup(:,1)*swradcorr(:)
[1898]1008       ENDIF
1009       CALL histwrite_phy(o_SWupSFC, zx_tmp_fi2d)
[1813]1010
[1898]1011       IF (vars_defined) THEN
[2366]1012          zx_tmp_fi2d(:) = swup0(:,1)*swradcorr(:)
[1898]1013       ENDIF
1014       CALL histwrite_phy(o_SWupSFCclr, zx_tmp_fi2d)
[1813]1015
[4170]1016       IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN
[4106]1017          IF (vars_defined) THEN
1018             zx_tmp_fi2d(:) = swupc0(:,1)*swradcorr(:)
1019          ENDIF
1020          CALL histwrite_phy(o_SWupSFCcleanclr, zx_tmp_fi2d)
[3082]1021       ENDIF
1022
1023       IF (vars_defined) THEN
[2366]1024          zx_tmp_fi2d(:) = swdn(:,1)*swradcorr(:)
[1898]1025       ENDIF
1026       CALL histwrite_phy(o_SWdnSFC, zx_tmp_fi2d)
[1813]1027
[1898]1028       IF (vars_defined) THEN
[2366]1029          zx_tmp_fi2d(:) = swdn0(:,1)*swradcorr(:)
[1898]1030       ENDIF
1031       CALL histwrite_phy(o_SWdnSFCclr, zx_tmp_fi2d)
[1813]1032
[4170]1033       IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN
[4106]1034          IF (vars_defined) THEN
1035             zx_tmp_fi2d(:) = swdnc0(:,1)*swradcorr(:)
1036          ENDIF
1037          CALL histwrite_phy(o_SWdnSFCcleanclr, zx_tmp_fi2d)
[3082]1038       ENDIF
1039
[3756]1040       CALL histwrite_phy(o_fdiffSWdnSFC, solswfdiff)
1041
[3082]1042       IF (vars_defined) THEN
[2366]1043          zx_tmp_fi2d(:)=sollwdown(:)-sollw(:)
[1898]1044       ENDIF
1045       CALL histwrite_phy(o_LWupSFC, zx_tmp_fi2d)
1046       CALL histwrite_phy(o_LWdnSFC, sollwdown)
[1813]1047
[1898]1048       IF (vars_defined) THEN
1049          sollwdownclr(1:klon) = -1.*lwdn0(1:klon,1)
1050          zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon)
1051       ENDIF
1052       CALL histwrite_phy(o_LWupSFCclr, zx_tmp_fi2d)
1053       CALL histwrite_phy(o_LWdnSFCclr, sollwdownclr)
[3106]1054
[4170]1055       IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN
[4106]1056          IF (vars_defined) THEN
1057             zx_tmp_fi2d(:) = lwupc0(:,klevp1)
1058          ENDIF
1059          CALL histwrite_phy(o_LWupTOAcleanclr, zx_tmp_fi2d)
[3106]1060       ENDIF
[4106]1061
[4170]1062       IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN
[4106]1063          IF (vars_defined) THEN
1064             zx_tmp_fi2d(:) = -1.*lwdnc0(:,1)
1065          ENDIF
1066          CALL histwrite_phy(o_LWdnSFCcleanclr, zx_tmp_fi2d)
[3106]1067       ENDIF
1068
[1898]1069       CALL histwrite_phy(o_bils, bils)
1070       CALL histwrite_phy(o_bils_diss, bils_diss)
1071       CALL histwrite_phy(o_bils_ec, bils_ec)
[2816]1072       CALL histwrite_phy(o_bils_ech, bils_ech)
[1898]1073       CALL histwrite_phy(o_bils_tke, bils_tke)
1074       CALL histwrite_phy(o_bils_kinetic, bils_kinetic)
1075       CALL histwrite_phy(o_bils_latent, bils_latent)
1076       CALL histwrite_phy(o_bils_enthalp, bils_enthalp)
[1813]1077
[1898]1078       IF (vars_defined) THEN
1079          zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
1080       ENDIF
1081       CALL histwrite_phy(o_sens, zx_tmp_fi2d)
1082       CALL histwrite_phy(o_fder, fder)
1083       CALL histwrite_phy(o_ffonte, zxffonte)
1084       CALL histwrite_phy(o_fqcalving, zxfqcalving)
1085       CALL histwrite_phy(o_fqfonte, zxfqfonte)
[3095]1086       IF (vars_defined) THEN
1087          zx_tmp_fi2d(1:klon)=(zxfqfonte(1:klon)+rain_fall(1:klon))*pctsrf(1:klon,is_lic)
1088       ENDIF
1089       CALL histwrite_phy(o_mrroli, zx_tmp_fi2d)
[2517]1090       CALL histwrite_phy(o_runofflic, zxrunofflic)
[1898]1091       IF (vars_defined) THEN
1092          zx_tmp_fi2d=0.
1093          DO nsrf=1,nbsrf
1094             zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxu(:,1,nsrf)
1095          ENDDO
1096       ENDIF
1097       CALL histwrite_phy(o_taux, zx_tmp_fi2d)
[1813]1098
[1898]1099       IF (vars_defined) THEN
1100          zx_tmp_fi2d=0.
1101          DO nsrf=1,nbsrf
1102             zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxv(:,1,nsrf)
1103          ENDDO
1104       ENDIF
1105       CALL histwrite_phy(o_tauy, zx_tmp_fi2d)
[1813]1106
[3900]1107       ! Etienne: test sorties pour compil sur JZ
1108!       IF (landice_opt .GE. 1) THEN
1109!          CALL histwrite_phy(o_snowsrf, snow_o)
1110!          CALL histwrite_phy(o_qsnow, qsnow)
1111!          CALL histwrite_phy(o_snowhgt,snowhgt)
1112!          CALL histwrite_phy(o_toice,to_ice)
1113!          CALL histwrite_phy(o_sissnow,sissnow)
1114!          CALL histwrite_phy(o_runoff,runoff)
1115!          CALL histwrite_phy(o_albslw3,albsol3_lic)
1116!       ENDIF
[1813]1117
[1898]1118       DO nsrf = 1, nbsrf
[2670]1119
[1898]1120          IF (vars_defined)             zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
1121          CALL histwrite_phy(o_pourc_srf(nsrf), zx_tmp_fi2d)
1122          IF (vars_defined)           zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
1123          CALL histwrite_phy(o_fract_srf(nsrf), zx_tmp_fi2d)
1124          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
1125          CALL histwrite_phy(o_taux_srf(nsrf), zx_tmp_fi2d)
1126          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
1127          CALL histwrite_phy(o_tauy_srf(nsrf), zx_tmp_fi2d)
1128          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
1129          CALL histwrite_phy(o_tsol_srf(nsrf), zx_tmp_fi2d)
1130          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = evap_pot( 1 : klon, nsrf)
1131          CALL histwrite_phy(o_evappot_srf(nsrf), zx_tmp_fi2d)
1132          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = ustar(1 : klon, nsrf)
1133          CALL histwrite_phy(o_ustar_srf(nsrf), zx_tmp_fi2d)
1134          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = u10m(1 : klon, nsrf)
1135          CALL histwrite_phy(o_u10m_srf(nsrf), zx_tmp_fi2d)
1136          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = v10m(1 : klon, nsrf)
1137          CALL histwrite_phy(o_v10m_srf(nsrf), zx_tmp_fi2d)
1138          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = t2m(1 : klon, nsrf)
1139          CALL histwrite_phy(o_t2m_srf(nsrf), zx_tmp_fi2d)
1140          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fevap(1 : klon, nsrf)
1141          CALL histwrite_phy(o_evap_srf(nsrf), zx_tmp_fi2d)
1142          IF (vars_defined)        zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
1143          CALL histwrite_phy(o_sens_srf(nsrf), zx_tmp_fi2d)
1144          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
1145          CALL histwrite_phy(o_lat_srf(nsrf), zx_tmp_fi2d)
1146          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf)
1147          CALL histwrite_phy(o_flw_srf(nsrf), zx_tmp_fi2d)
1148          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf)
1149          CALL histwrite_phy(o_fsw_srf(nsrf), zx_tmp_fi2d)
1150          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf)
1151          CALL histwrite_phy(o_wbils_srf(nsrf), zx_tmp_fi2d)
1152          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfbilo( 1 : klon, nsrf)
1153          CALL histwrite_phy(o_wbilo_srf(nsrf), zx_tmp_fi2d)
[2670]1154          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfevap( 1 : klon, nsrf)
1155          CALL histwrite_phy(o_wevap_srf(nsrf), zx_tmp_fi2d)
1156          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfrain( 1 : klon, nsrf)
1157          CALL histwrite_phy(o_wrain_srf(nsrf), zx_tmp_fi2d)
1158          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfsnow( 1 : klon, nsrf)
1159          CALL histwrite_phy(o_wsnow_srf(nsrf), zx_tmp_fi2d)
[1865]1160
[1898]1161          IF (iflag_pbl > 1) THEN
1162             CALL histwrite_phy(o_tke_srf(nsrf),  pbl_tke(:,1:klev,nsrf))
[3575]1163             !CALL histwrite_phy(o_l_mix(nsrf),  l_mix(:,1:klev,nsrf))
[2561]1164             CALL histwrite_phy(o_l_mixmin(nsrf),  l_mixmin(:,1:klev,nsrf))
[1898]1165             CALL histwrite_phy(o_tke_max_srf(nsrf),  pbl_tke(:,1:klev,nsrf))
[3780]1166
1167                         
[1898]1168          ENDIF
[2159]1169!jyg<
[2255]1170          IF (iflag_pbl > 1 .AND. iflag_wake>=1  .AND. iflag_pbl_split >=1) THEN
[2159]1171             CALL histwrite_phy(o_dltpbltke_srf(nsrf), wake_delta_pbl_TKE(:,1:klev,nsrf))
1172          ENDIF
1173!>jyg
[2952]1174!          IF (iflag_pbl > 1 .AND. ifl_pbltree  >=1 ) THEN
1175!       CALL histwrite_phy(o_treedrg_srf(nsrf), treedrg(:,1:klev,nsrf))
1176!            ENDIF
[1813]1177
[1898]1178       ENDDO
[3780]1179       
1180               
1181        IF (iflag_pbl > 1) THEN
1182          zx_tmp_fi3d=0.
1183          IF (vars_defined) THEN
1184             DO nsrf=1,nbsrf
1185                DO k=1,klev
1186                   zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k) &
1187                        +pctsrf(:,nsrf)*tke_dissip(:,k,nsrf)
1188                ENDDO
1189             ENDDO
1190          ENDIF
1191         
1192          CALL histwrite_phy(o_tke_dissip, zx_tmp_fi3d)   
1193       ENDIF
[2538]1194
1195       IF (vars_defined) zx_tmp_fi2d(1 : klon) = sens_prec_liq_o(1 : klon, 1)
1196       CALL histwrite_phy(o_sens_prec_liq_oce, zx_tmp_fi2d)       
1197       IF (vars_defined) zx_tmp_fi2d(1 : klon) = sens_prec_liq_o(1 : klon, 2)
1198       CALL histwrite_phy(o_sens_prec_liq_sic, zx_tmp_fi2d)       
1199       IF (vars_defined) zx_tmp_fi2d(1 : klon) = sens_prec_sol_o(1 : klon, 1)
1200       CALL histwrite_phy(o_sens_prec_sol_oce, zx_tmp_fi2d)       
1201       IF (vars_defined) zx_tmp_fi2d(1 : klon) = sens_prec_sol_o(1 : klon, 2)
1202       CALL histwrite_phy(o_sens_prec_sol_sic, zx_tmp_fi2d)       
1203
1204       IF (vars_defined) zx_tmp_fi2d(1 : klon) = lat_prec_liq_o(1 : klon, 1)
1205       CALL histwrite_phy(o_lat_prec_liq_oce, zx_tmp_fi2d)       
1206       IF (vars_defined) zx_tmp_fi2d(1 : klon) = lat_prec_liq_o(1 : klon, 2)
1207       CALL histwrite_phy(o_lat_prec_liq_sic, zx_tmp_fi2d)       
1208       IF (vars_defined) zx_tmp_fi2d(1 : klon) = lat_prec_sol_o(1 : klon, 1)
1209       CALL histwrite_phy(o_lat_prec_sol_oce, zx_tmp_fi2d)       
1210       IF (vars_defined) zx_tmp_fi2d(1 : klon) = lat_prec_sol_o(1 : klon, 2)
1211       CALL histwrite_phy(o_lat_prec_sol_sic, zx_tmp_fi2d)       
1212
[1898]1213       DO nsrf=1,nbsrf+1
1214          CALL histwrite_phy(o_wstar(nsrf), wstar(1 : klon, nsrf))
1215       ENDDO
[1813]1216
[1898]1217       CALL histwrite_phy(o_cdrm, cdragm)
1218       CALL histwrite_phy(o_cdrh, cdragh)
1219       CALL histwrite_phy(o_cldl, cldl)
1220       CALL histwrite_phy(o_cldm, cldm)
1221       CALL histwrite_phy(o_cldh, cldh)
1222       CALL histwrite_phy(o_cldt, cldt)
[1924]1223       CALL histwrite_phy(o_JrNt, JrNt)
[3435]1224       
1225       IF (vars_defined)  zx_tmp_fi2d=cldl*JrNt     
1226       CALL histwrite_phy(o_cldljn, zx_tmp_fi2d)
1227       
1228       IF (vars_defined)  zx_tmp_fi2d=cldm*JrNt     
1229       CALL histwrite_phy(o_cldmjn, zx_tmp_fi2d)
1230       
1231       IF (vars_defined)  zx_tmp_fi2d=cldh*JrNt
1232       CALL histwrite_phy(o_cldhjn, zx_tmp_fi2d)
1233       
1234       IF (vars_defined)  zx_tmp_fi2d=cldt*JrNt
1235       CALL histwrite_phy(o_cldtjn, zx_tmp_fi2d)
1236       
[1898]1237       CALL histwrite_phy(o_cldq, cldq)
1238       IF (vars_defined)       zx_tmp_fi2d(1:klon) = flwp(1:klon)
1239       CALL histwrite_phy(o_lwp, zx_tmp_fi2d)
1240       IF (vars_defined)       zx_tmp_fi2d(1:klon) = fiwp(1:klon)
1241       CALL histwrite_phy(o_iwp, zx_tmp_fi2d)
1242       CALL histwrite_phy(o_ue, ue)
1243       CALL histwrite_phy(o_ve, ve)
1244       CALL histwrite_phy(o_uq, uq)
1245       CALL histwrite_phy(o_vq, vq)
[3257]1246       CALL histwrite_phy(o_uwat, uwat)
1247       CALL histwrite_phy(o_vwat, vwat)
[2690]1248       IF (iflag_con.GE.3) THEN ! sb
[1898]1249          CALL histwrite_phy(o_cape, cape)
1250          CALL histwrite_phy(o_pbase, ema_pcb)
1251          CALL histwrite_phy(o_ptop, ema_pct)
1252          CALL histwrite_phy(o_fbase, ema_cbmf)
[2690]1253          IF (iflag_con /= 30) THEN
[1898]1254             CALL histwrite_phy(o_plcl, plcl)
1255             CALL histwrite_phy(o_plfc, plfc)
1256             CALL histwrite_phy(o_wbeff, wbeff)
[2824]1257             CALL histwrite_phy(o_convoccur, convoccur)
[2690]1258          ENDIF
[1816]1259
[1898]1260          CALL histwrite_phy(o_cape_max, cape)
[1813]1261
[1898]1262          CALL histwrite_phy(o_upwd, upwd)
1263          CALL histwrite_phy(o_Ma, Ma)
1264          CALL histwrite_phy(o_dnwd, dnwd)
1265          CALL histwrite_phy(o_dnwd0, dnwd0)
[3171]1266          !! The part relative to the frequency of occurence of convection
1267          !! is now grouped with the part relative to thermals and shallow
1268          !! convection (output of the 3 fields: ftime_deepcv, ftime_th and
1269          !!  ftime_con).
[3167]1270          IF (vars_defined) THEN
[2690]1271             IF (iflag_thermals>=1)THEN
[4109]1272                zx_tmp_fi3d=dnwd+dnwd0+upwd+fm_therm(:,1:klev)
[1898]1273             ELSE
[4109]1274                zx_tmp_fi3d=dnwd+dnwd0+upwd
[1898]1275             ENDIF
1276          ENDIF
1277          CALL histwrite_phy(o_mc, zx_tmp_fi3d)
1278       ENDIF !iflag_con .GE. 3
1279       CALL histwrite_phy(o_prw, prw)
[2496]1280       CALL histwrite_phy(o_prlw, prlw)
1281       CALL histwrite_phy(o_prsw, prsw)
[1898]1282       CALL histwrite_phy(o_s_pblh, s_pblh)
1283       CALL histwrite_phy(o_s_pblt, s_pblt)
1284       CALL histwrite_phy(o_s_lcl, s_lcl)
1285       CALL histwrite_phy(o_s_therm, s_therm)
1286       !IM : Les champs suivants (s_capCL, s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F
1287       !       IF (o_s_capCL%flag(iff)<=lev_files(iff)) THEN
1288       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1289       !    $o_s_capCL%name,itau_w,s_capCL)
1290       !       ENDIF
1291       !       IF (o_s_oliqCL%flag(iff)<=lev_files(iff)) THEN
1292       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1293       !    $o_s_oliqCL%name,itau_w,s_oliqCL)
1294       !       ENDIF
1295       !       IF (o_s_cteiCL%flag(iff)<=lev_files(iff)) THEN
1296       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1297       !    $o_s_cteiCL%name,itau_w,s_cteiCL)
1298       !       ENDIF
1299       !       IF (o_s_trmb1%flag(iff)<=lev_files(iff)) THEN
1300       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1301       !    $o_s_trmb1%name,itau_w,s_trmb1)
1302       !       ENDIF
1303       !       IF (o_s_trmb2%flag(iff)<=lev_files(iff)) THEN
1304       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1305       !    $o_s_trmb2%name,itau_w,s_trmb2)
1306       !       ENDIF
1307       !       IF (o_s_trmb3%flag(iff)<=lev_files(iff)) THEN
1308       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
1309       !    $o_s_trmb3%name,itau_w,s_trmb3)
1310       !       ENDIF
[1813]1311
[2282]1312#ifdef CPP_IOIPSL
1313#ifndef CPP_XIOS
[2271]1314  IF (.NOT.ok_all_xml) THEN
[1898]1315       ! ATTENTION, LES ANCIENS HISTWRITE ONT ETES CONSERVES EN ATTENDANT MIEUX:
1316       ! Champs interpolles sur des niveaux de pression
1317       DO iff=1, nfiles
1318          ll=0
1319          DO k=1, nlevSTD
1320             bb2=clevSTD(k)
[2690]1321             IF (bb2.EQ."850".OR.bb2.EQ."700".OR. &
[1898]1322                  bb2.EQ."500".OR.bb2.EQ."200".OR. &
1323                  bb2.EQ."100".OR. &
1324                  bb2.EQ."50".OR.bb2.EQ."10") THEN
[1813]1325
[1898]1326                ! a refaire correctement !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1327                ll=ll+1
1328                CALL histwrite_phy(o_uSTDlevs(ll),uwriteSTD(:,k,iff), iff)
1329                CALL histwrite_phy(o_vSTDlevs(ll),vwriteSTD(:,k,iff), iff)
1330                CALL histwrite_phy(o_wSTDlevs(ll),wwriteSTD(:,k,iff), iff)
1331                CALL histwrite_phy(o_zSTDlevs(ll),phiwriteSTD(:,k,iff), iff)
1332                CALL histwrite_phy(o_qSTDlevs(ll),qwriteSTD(:,k,iff), iff)
1333                CALL histwrite_phy(o_tSTDlevs(ll),twriteSTD(:,k,iff), iff)
[1813]1334
[1898]1335             ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
1336          ENDDO
[1813]1337       ENDDO
[2282]1338  ENDIF
1339#endif
1340#endif
1341#ifdef CPP_XIOS
[2690]1342  IF (ok_all_xml) THEN
[2271]1343!XIOS  CALL xios_get_field_attr("u850",default_value=missing_val)
1344!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1345          ll=0
1346          DO k=1, nlevSTD
1347             bb2=clevSTD(k)
[2690]1348             IF (bb2.EQ."850".OR.bb2.EQ."700".OR. &
[2271]1349                bb2.EQ."500".OR.bb2.EQ."200".OR. &
1350                bb2.EQ."100".OR. &
1351                bb2.EQ."50".OR.bb2.EQ."10") THEN
1352                ll=ll+1
[2282]1353                CALL histwrite_phy(o_uSTDlevs(ll),ulevSTD(:,k))
1354                CALL histwrite_phy(o_vSTDlevs(ll),vlevSTD(:,k))
1355                CALL histwrite_phy(o_wSTDlevs(ll),wlevSTD(:,k))
1356                CALL histwrite_phy(o_zSTDlevs(ll),philevSTD(:,k))
1357                CALL histwrite_phy(o_qSTDlevs(ll),qlevSTD(:,k))
1358                CALL histwrite_phy(o_tSTDlevs(ll),tlevSTD(:,k))
[2271]1359             ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
1360          ENDDO
1361  ENDIF
[2282]1362#endif
[1898]1363       IF (vars_defined) THEN
1364          DO i=1, klon
1365             IF (pctsrf(i,is_oce).GT.epsfra.OR. &
1366                  pctsrf(i,is_sic).GT.epsfra) THEN
1367                zx_tmp_fi2d(i) = (ftsol(i, is_oce) * pctsrf(i,is_oce)+ &
1368                     ftsol(i, is_sic) * pctsrf(i,is_sic))/ &
1369                     (pctsrf(i,is_oce)+pctsrf(i,is_sic))
1370             ELSE
1371                zx_tmp_fi2d(i) = 273.15
1372             ENDIF
1373          ENDDO
[1813]1374       ENDIF
[1898]1375       CALL histwrite_phy(o_t_oce_sic, zx_tmp_fi2d)
[1813]1376
[1898]1377       ! Couplage convection-couche limite
1378       IF (iflag_con.GE.3) THEN
1379          IF (iflag_coupl>=1) THEN
1380             CALL histwrite_phy(o_ale_bl, ale_bl)
1381             CALL histwrite_phy(o_alp_bl, alp_bl)
1382          ENDIF !iflag_coupl>=1
1383       ENDIF !(iflag_con.GE.3)
1384       ! Wakes
1385       IF (iflag_con.EQ.3) THEN
[3523]1386          CALL histwrite_phy(o_Mipsh, Mipsh)
[1898]1387          IF (iflag_wake>=1) THEN
1388             CALL histwrite_phy(o_ale_wk, ale_wake)
1389             CALL histwrite_phy(o_alp_wk, alp_wake)
[2393]1390             IF (iflag_pbl_split>=1) THEN
[3179]1391!!               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=dtvdf_x(1:klon,1:klev)/pdtphys
1392!!               CALL histwrite_phy(o_dtvdf_x    ,zx_tmp_fi3d)
1393!!               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=dtvdf_w(1:klon,1:klev)/pdtphys
1394!!               CALL histwrite_phy(o_dtvdf_w    ,zx_tmp_fi3d)
1395!!               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=dqvdf_x(1:klon,1:klev)/pdtphys
1396!!               CALL histwrite_phy(o_dqvdf_x    ,zx_tmp_fi3d)
1397!!               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=dqvdf_w(1:klon,1:klev)/pdtphys
1398!
1399               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf_x(1:klon,1:klev)/pdtphys
[2393]1400               CALL histwrite_phy(o_dtvdf_x    ,zx_tmp_fi3d)
[3179]1401               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf_w(1:klon,1:klev)/pdtphys
[2393]1402               CALL histwrite_phy(o_dtvdf_w    ,zx_tmp_fi3d)
[3179]1403               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf_x(1:klon,1:klev)/pdtphys
[2393]1404               CALL histwrite_phy(o_dqvdf_x    ,zx_tmp_fi3d)
[3179]1405               IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf_w(1:klon,1:klev)/pdtphys
1406!
[2393]1407               CALL histwrite_phy(o_dqvdf_w    ,zx_tmp_fi3d)
[3888]1408       IF (vars_defined)  zx_tmp_fi2d(1:klon)=-1*sens_x(1:klon)
1409               CALL histwrite_phy(o_sens_x     ,zx_tmp_fi2d)
1410       IF (vars_defined)  zx_tmp_fi2d(1:klon)=-1*sens_w(1:klon)
1411               CALL histwrite_phy(o_sens_w     ,zx_tmp_fi2d)
[2393]1412               CALL histwrite_phy(o_flat_x     ,zxfluxlat_x)
1413               CALL histwrite_phy(o_flat_w     ,zxfluxlat_w)
[3888]1414          zx_tmp_fi2d=0.
1415          IF (vars_defined) THEN
1416             DO nsrf=1,nbsrf
1417                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:) &
1418                        +pctsrf(:,nsrf)*delta_tsurf(:,nsrf)
1419             ENDDO
1420          ENDIF
1421               CALL histwrite_phy(o_delta_tsurf,zx_tmp_fi2d)
[2393]1422               CALL histwrite_phy(o_cdragh_x   ,cdragh_x   )
1423               CALL histwrite_phy(o_cdragh_w   ,cdragh_w   )
1424               CALL histwrite_phy(o_cdragm_x   ,cdragm_x   )
1425               CALL histwrite_phy(o_cdragm_w   ,cdragm_w   )
1426               CALL histwrite_phy(o_kh         ,kh         )
1427               CALL histwrite_phy(o_kh_x       ,kh_x       )
1428               CALL histwrite_phy(o_kh_w       ,kh_w       )
1429             ENDIF   ! (iflag_pbl_split>=1)
[1898]1430             CALL histwrite_phy(o_ale, ale)
1431             CALL histwrite_phy(o_alp, alp)
1432             CALL histwrite_phy(o_cin, cin)
1433             CALL histwrite_phy(o_WAPE, wake_pe)
[3208]1434             CALL histwrite_phy(o_cv_gen, cv_gen)
[1898]1435             CALL histwrite_phy(o_wake_h, wake_h)
[3208]1436             CALL histwrite_phy(o_wake_dens, wake_dens)
[1898]1437             CALL histwrite_phy(o_wake_s, wake_s)
1438             CALL histwrite_phy(o_wake_deltat, wake_deltat)
1439             CALL histwrite_phy(o_wake_deltaq, wake_deltaq)
1440             CALL histwrite_phy(o_wake_omg, wake_omg)
1441             IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_wake(1:klon,1:klev) &
1442                  /pdtphys
1443             CALL histwrite_phy(o_dtwak, zx_tmp_fi3d)
1444             IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_wake(1:klon,1:klev)/pdtphys
1445             CALL histwrite_phy(o_dqwak, zx_tmp_fi3d)
[3435]1446             IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
[2486]1447             CALL histwrite_phy(o_dqwak2d, zx_tmp_fi2d)
[1898]1448          ENDIF ! iflag_wake>=1
1449          CALL histwrite_phy(o_ftd, ftd)
1450          CALL histwrite_phy(o_fqd, fqd)
[2253]1451       ENDIF !(iflag_con.EQ.3)
1452       IF (iflag_con.EQ.3.OR.iflag_con.EQ.30) THEN
[1898]1453          ! sortie RomP convection descente insaturee iflag_con=30
[2253]1454          ! etendue a iflag_con=3 (jyg)
[1898]1455          CALL histwrite_phy(o_Vprecip, Vprecip)
[3496]1456          CALL histwrite_phy(o_qtaa, qtaa)
1457          CALL histwrite_phy(o_clwaa, clw)
[1898]1458          CALL histwrite_phy(o_wdtrainA, wdtrainA)
[3496]1459          CALL histwrite_phy(o_wdtrainS, wdtrainS)
[1898]1460          CALL histwrite_phy(o_wdtrainM, wdtrainM)
1461       ENDIF !(iflag_con.EQ.3.or.iflag_con.EQ.30)
[1813]1462!!! nrlmd le 10/04/2012
[1898]1463       IF (iflag_trig_bl>=1) THEN
1464          CALL histwrite_phy(o_n2, n2)
1465          CALL histwrite_phy(o_s2, s2)
1466          CALL histwrite_phy(o_proba_notrig, proba_notrig)
1467          CALL histwrite_phy(o_random_notrig, random_notrig)
1468          CALL histwrite_phy(o_ale_bl_stat, ale_bl_stat)
1469          CALL histwrite_phy(o_ale_bl_trig, ale_bl_trig)
[1813]1470       ENDIF  !(iflag_trig_bl>=1)
[1898]1471       IF (iflag_clos_bl>=1) THEN
1472          CALL histwrite_phy(o_alp_bl_det, alp_bl_det)
1473          CALL histwrite_phy(o_alp_bl_fluct_m, alp_bl_fluct_m)
1474          CALL histwrite_phy(o_alp_bl_fluct_tke,  &
1475               alp_bl_fluct_tke)
1476          CALL histwrite_phy(o_alp_bl_conv, alp_bl_conv)
1477          CALL histwrite_phy(o_alp_bl_stat, alp_bl_stat)
[1813]1478       ENDIF  !(iflag_clos_bl>=1)
1479!!! fin nrlmd le 10/04/2012
[2057]1480       ! Output of slab ocean variables
[1898]1481       IF (type_ocean=='slab ') THEN
[3002]1482          CALL histwrite_phy(o_slab_bils, slab_wfbils)
[2057]1483          IF (nslay.EQ.1) THEN
[3950]1484              IF (vars_defined) zx_tmp_fi2d(:)=tslab(:,1)
[2057]1485              CALL histwrite_phy(o_tslab, zx_tmp_fi2d)
[3950]1486              IF (vars_defined) zx_tmp_fi2d(:)=dt_qflux(:,1)
[3002]1487              CALL histwrite_phy(o_slab_qflux, zx_tmp_fi2d)
[2057]1488          ELSE
[2656]1489              CALL histwrite_phy(o_tslab, tslab(:,1:nslay))
[3002]1490              CALL histwrite_phy(o_slab_qflux, dt_qflux(:,1:nslay))
[2690]1491          ENDIF
[2209]1492          IF (version_ocean=='sicINT') THEN
1493              CALL histwrite_phy(o_slab_bilg, slab_bilg)
1494              CALL histwrite_phy(o_slab_tice, tice)
1495              CALL histwrite_phy(o_slab_sic, seaice)
[2690]1496          ENDIF
[3002]1497          IF (slab_gm) THEN
1498             CALL histwrite_phy(o_slab_gm, dt_gm(:,1:nslay))
[3453]1499          ENDIF
[2656]1500          IF (slab_hdiff) THEN
1501            IF (nslay.EQ.1) THEN
[3950]1502                IF (vars_defined) zx_tmp_fi2d(:)=dt_hdiff(:,1)
[2656]1503                CALL histwrite_phy(o_slab_hdiff, zx_tmp_fi2d)
1504            ELSE
1505                CALL histwrite_phy(o_slab_hdiff, dt_hdiff(:,1:nslay))
[2690]1506            ENDIF
1507          ENDIF
[2656]1508          IF (slab_ekman.GT.0) THEN
1509            IF (nslay.EQ.1) THEN
[3950]1510                IF (vars_defined) zx_tmp_fi2d(:)=dt_ekman(:,1)
[2656]1511                CALL histwrite_phy(o_slab_ekman, zx_tmp_fi2d)
1512            ELSE
1513                CALL histwrite_phy(o_slab_ekman, dt_ekman(:,1:nslay))
[2690]1514            ENDIF
1515          ENDIF
[1898]1516       ENDIF !type_ocean == force/slab
1517       CALL histwrite_phy(o_weakinv, weak_inversion)
1518       CALL histwrite_phy(o_dthmin, dthmin)
1519       CALL histwrite_phy(o_cldtau, cldtau)
1520       CALL histwrite_phy(o_cldemi, cldemi)
1521       CALL histwrite_phy(o_pr_con_l, pmflxr(:,1:klev))
1522       CALL histwrite_phy(o_pr_con_i, pmflxs(:,1:klev))
1523       CALL histwrite_phy(o_pr_lsc_l, prfl(:,1:klev))
1524       CALL histwrite_phy(o_pr_lsc_i, psfl(:,1:klev))
1525       CALL histwrite_phy(o_re, re)
1526       CALL histwrite_phy(o_fl, fl)
1527       IF (vars_defined) THEN
1528          DO i=1, klon
[3929]1529             IF (zt2m(i).LE.273.15) then
1530                zx_tmp_fi2d(i)=MAX(0.,rh2m(i)*100.)
1531             ELSE
1532                zx_tmp_fi2d(i)=MAX(0.,MIN(100.,rh2m(i)*100.))
1533             ENDIF
[1898]1534          ENDDO
1535       ENDIF
1536       CALL histwrite_phy(o_rh2m, zx_tmp_fi2d)
[1813]1537
[3165]1538!       IF (vars_defined) THEN
1539!          DO i=1, klon
1540!             zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
1541!          ENDDO
1542!       ENDIF
1543!       CALL histwrite_phy(o_rh2m_min, zx_tmp_fi2d)
[1813]1544
[3165]1545!       IF (vars_defined) THEN
1546!          DO i=1, klon
1547!             zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
1548!          ENDDO
1549!       ENDIF
1550!       CALL histwrite_phy(o_rh2m_max, zx_tmp_fi2d)
[1813]1551
[3817]1552       CALL histwrite_phy(o_qsat2m, qsat2m)
[1898]1553       CALL histwrite_phy(o_tpot, tpot)
1554       CALL histwrite_phy(o_tpote, tpote)
1555       IF (vars_defined) zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, is_ter)
1556       CALL histwrite_phy(o_SWnetOR,  zx_tmp_fi2d)
1557       CALL histwrite_phy(o_LWdownOR, sollwdown)
1558       CALL histwrite_phy(o_snowl, snow_lsc)
1559       CALL histwrite_phy(o_solldown, sollwdown)
1560       CALL histwrite_phy(o_dtsvdfo, d_ts(:,is_oce))
1561       CALL histwrite_phy(o_dtsvdft, d_ts(:,is_ter))
1562       CALL histwrite_phy(o_dtsvdfg,  d_ts(:,is_lic))
1563       CALL histwrite_phy(o_dtsvdfi, d_ts(:,is_sic))
[2243]1564       CALL histwrite_phy(o_z0m, z0m(:,nbsrf+1))
1565       CALL histwrite_phy(o_z0h, z0h(:,nbsrf+1))
[2952]1566
[2854]1567       ! od550 per species
[2146]1568!--OLIVIER
1569!This is warranted by treating INCA aerosols as offline aerosols
[3630]1570       IF (flag_aerosol.GT.0) THEN
[4170]1571          IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN
[4106]1572
1573             CALL histwrite_phy(o_od443aer, od443aer)
1574             CALL histwrite_phy(o_od550aer, od550aer)
1575             CALL histwrite_phy(o_od865aer, od865aer)
1576             CALL histwrite_phy(o_abs550aer, abs550aer)
1577             CALL histwrite_phy(o_od550lt1aer, od550lt1aer)
1578             CALL histwrite_phy(o_sconcso4, sconcso4)
1579             CALL histwrite_phy(o_sconcno3, sconcno3)
1580             CALL histwrite_phy(o_sconcoa, sconcoa)
1581             CALL histwrite_phy(o_sconcbc, sconcbc)
1582             CALL histwrite_phy(o_sconcss, sconcss)
1583             CALL histwrite_phy(o_sconcdust, sconcdust)
1584             CALL histwrite_phy(o_concso4, concso4)
1585             CALL histwrite_phy(o_concno3, concno3)
1586             CALL histwrite_phy(o_concoa, concoa)
1587             CALL histwrite_phy(o_concbc, concbc)
1588             CALL histwrite_phy(o_concss, concss)
1589             CALL histwrite_phy(o_concdust, concdust)
1590             CALL histwrite_phy(o_loadso4, loadso4)
1591             CALL histwrite_phy(o_loadoa, loadoa)
1592             CALL histwrite_phy(o_loadbc, loadbc)
1593             CALL histwrite_phy(o_loadss, loadss)
1594             CALL histwrite_phy(o_loaddust, loaddust)
1595             CALL histwrite_phy(o_loadno3, loadno3)
1596             CALL histwrite_phy(o_dryod550aer, dryod550aer)
1597             DO naero = 1, naero_tot-1
1598                CALL histwrite_phy(o_drytausumaero(naero),drytausum_aero(:,naero))
1599             END DO
1600          ENDIF
[1898]1601       ENDIF
[3630]1602       !--STRAT AER
1603       IF (flag_aerosol.GT.0.OR.flag_aerosol_strat.GT.0) THEN
1604          DO naero = 1, naero_tot
1605             CALL histwrite_phy(o_tausumaero(naero),tausum_aero(:,2,naero))
1606          END DO
1607       ENDIF
1608       IF (flag_aerosol_strat.GT.0) THEN
1609          CALL histwrite_phy(o_tausumaero_lw,tausum_aero(:,6,id_STRAT_phy))
1610       ENDIF
[2992]1611
1612       CALL histwrite_phy(o_p_tropopause, p_tropopause)
1613       CALL histwrite_phy(o_t_tropopause, t_tropopause)
1614       CALL histwrite_phy(o_z_tropopause, z_tropopause)
1615
[2993]1616! ThL -- In the following, we assume read_climoz == 1
[3435]1617       IF (vars_defined) THEN
1618         zx_tmp_fi2d = 0.0    ! Computation for strato, added ThL
1619         DO k=1, klev
1620            zx_tmp_fi2d(:) = zx_tmp_fi2d(:) + wo(:,k,1) * stratomask(:,k) * 1.e3
1621         END DO
1622       ENDIF
[2993]1623       CALL histwrite_phy(o_col_O3_strato, zx_tmp_fi2d) ! Added ThL
[3435]1624
1625       IF (vars_defined) THEN
1626         zx_tmp_fi2d = 0.0    ! Computation for tropo, added ThL
1627         DO k=1, klev
1628            zx_tmp_fi2d(:) = zx_tmp_fi2d(:) + wo(:,k,1) * (1.0-stratomask(:,k)) * 1.e3
1629         END DO
1630       ENDIF
[2993]1631       CALL histwrite_phy(o_col_O3_tropo, zx_tmp_fi2d)   ! Added ThL
1632! end add ThL
1633
[2690]1634#ifdef CPP_StratAer
[4170]1635       IF (ANY(types_trac=='coag')) THEN
[2690]1636          CALL histwrite_phy(o_R2SO4, R2SO4)
1637          CALL histwrite_phy(o_OCS_lifetime, OCS_lifetime)
1638          CALL histwrite_phy(o_SO2_lifetime, SO2_lifetime)
[2752]1639          CALL histwrite_phy(o_budg_3D_backgr_ocs,   budg_3D_backgr_ocs)
1640          CALL histwrite_phy(o_budg_3D_backgr_so2,   budg_3D_backgr_so2)
1641          CALL histwrite_phy(o_budg_3D_ocs_to_so2,   budg_3D_ocs_to_so2)
1642          CALL histwrite_phy(o_budg_3D_so2_to_h2so4, budg_3D_so2_to_h2so4)
1643          CALL histwrite_phy(o_budg_3D_nucl,         budg_3D_nucl)
1644          CALL histwrite_phy(o_budg_3D_cond_evap,    budg_3D_cond_evap)
[3100]1645          CALL histwrite_phy(o_budg_dep_dry_ocs,     budg_dep_dry_ocs)
1646          CALL histwrite_phy(o_budg_dep_wet_ocs,     budg_dep_wet_ocs)
1647          CALL histwrite_phy(o_budg_dep_dry_so2,     budg_dep_dry_so2)
1648          CALL histwrite_phy(o_budg_dep_wet_so2,     budg_dep_wet_so2)
[2752]1649          CALL histwrite_phy(o_budg_dep_dry_h2so4,   budg_dep_dry_h2so4)
1650          CALL histwrite_phy(o_budg_dep_wet_h2so4,   budg_dep_wet_h2so4)
1651          CALL histwrite_phy(o_budg_dep_dry_part,    budg_dep_dry_part)
1652          CALL histwrite_phy(o_budg_dep_wet_part,    budg_dep_wet_part)
1653          CALL histwrite_phy(o_budg_emi_ocs,         budg_emi_ocs)
1654          CALL histwrite_phy(o_budg_emi_so2,         budg_emi_so2)
1655          CALL histwrite_phy(o_budg_emi_h2so4,       budg_emi_h2so4)
1656          CALL histwrite_phy(o_budg_emi_part,        budg_emi_part)
1657          CALL histwrite_phy(o_budg_ocs_to_so2,      budg_ocs_to_so2)
1658          CALL histwrite_phy(o_budg_so2_to_h2so4,    budg_so2_to_h2so4)
1659          CALL histwrite_phy(o_budg_h2so4_to_part,   budg_h2so4_to_part)
1660          CALL histwrite_phy(o_budg_sed_part,        budg_sed_part)
[2690]1661          CALL histwrite_phy(o_surf_PM25_sulf, surf_PM25_sulf)
1662          CALL histwrite_phy(o_vsed_aer, vsed_aer)
1663          CALL histwrite_phy(o_f_r_wet, f_r_wet)
1664          CALL histwrite_phy(o_ext_strat_550, tau_strat_550)
1665          CALL histwrite_phy(o_ext_strat_1020, tau_strat_1020)
1666          CALL histwrite_phy(o_tau_strat_550, tausum_strat(:,1))
1667          CALL histwrite_phy(o_tau_strat_1020, tausum_strat(:,2))
1668       ENDIF
1669#endif
[3479]1670       !NL
1671       IF (ok_volcan .AND. ok_ade) THEN
1672          DO k=1, klev
1673             IF (vars_defined) zx_tmp_fi3d(:,k)=heat_volc(:,k)*swradcorr(:)
1674          ENDDO
1675          CALL histwrite_phy(o_heat_volc, zx_tmp_fi3d)
1676          DO k=1, klev
[3480]1677             IF (vars_defined) zx_tmp_fi3d(:,k)=cool_volc(:,k)
[3479]1678          ENDDO
1679          CALL histwrite_phy(o_cool_volc, zx_tmp_fi3d)
1680       ENDIF
[1813]1681       IF (ok_ade) THEN
[3435]1682          IF (vars_defined) zx_tmp_fi2d(:)=topswad_aero*swradcorr
1683          CALL histwrite_phy(o_topswad, zx_tmp_fi2d)
1684         
1685          IF (vars_defined) zx_tmp_fi2d(:)=topswad0_aero*swradcorr
1686          CALL histwrite_phy(o_topswad0, zx_tmp_fi2d)
1687                   
1688          IF (vars_defined) zx_tmp_fi2d(:)=solswad_aero*swradcorr
1689          CALL histwrite_phy(o_solswad, zx_tmp_fi2d)
1690                   
1691          IF (vars_defined) zx_tmp_fi2d(:)=solswad0_aero*swradcorr
1692          CALL histwrite_phy(o_solswad0, zx_tmp_fi2d)
1693         
[4170]1694          IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN
[4106]1695
1696             CALL histwrite_phy(o_toplwad, toplwad_aero)
1697             CALL histwrite_phy(o_toplwad0, toplwad0_aero)
1698             CALL histwrite_phy(o_sollwad, sollwad_aero)
1699             CALL histwrite_phy(o_sollwad0, sollwad0_aero)
1700          ENDIF
[1898]1701          !====MS forcing diagnostics
[3435]1702          !ym warning : topsw_aero, solsw_aero, topsw0_aero, solsw0_aero are not defined by model
1703          !ym => init to 0 in radlwsw_m.F90 ztopsw_aero, zsolsw_aero, ztopsw0_aero, zsolsw0_aero
1704
[3630]1705          IF (vars_defined) zx_tmp_fi2d(:)=topsw_aero(:,1)*swradcorr(:)
1706          CALL histwrite_phy(o_swtoaas_nat,zx_tmp_fi2d)
1707          IF (vars_defined) zx_tmp_fi2d(:)=solsw_aero(:,1)*swradcorr(:)
1708          CALL histwrite_phy(o_swsrfas_nat,zx_tmp_fi2d)
1709          IF (vars_defined) zx_tmp_fi2d(:)=topsw0_aero(:,1)*swradcorr(:)
1710          CALL histwrite_phy(o_swtoacs_nat,zx_tmp_fi2d)
1711          IF (vars_defined) zx_tmp_fi2d(:)=solsw0_aero(:,1)*swradcorr(:)
1712          CALL histwrite_phy(o_swsrfcs_nat,zx_tmp_fi2d)
1713          !ant
1714          IF (vars_defined) zx_tmp_fi2d(:)=topsw_aero(:,2)*swradcorr(:)
1715          CALL histwrite_phy(o_swtoaas_ant,zx_tmp_fi2d)
1716          IF (vars_defined) zx_tmp_fi2d(:)=solsw_aero(:,2)*swradcorr(:)
1717          CALL histwrite_phy(o_swsrfas_ant,zx_tmp_fi2d)
1718          IF (vars_defined) zx_tmp_fi2d(:)=topsw0_aero(:,2)*swradcorr(:)
1719          CALL histwrite_phy(o_swtoacs_ant,zx_tmp_fi2d)
1720          IF (vars_defined) zx_tmp_fi2d(:)=solsw0_aero(:,2)*swradcorr(:)
1721          CALL histwrite_phy(o_swsrfcs_ant,zx_tmp_fi2d)
1722          !cf
1723          IF (.not. aerosol_couple) THEN
1724             IF (vars_defined) zx_tmp_fi2d(:)=topswcf_aero(:,1)*swradcorr(:)
1725             CALL histwrite_phy(o_swtoacf_nat,zx_tmp_fi2d)
1726             IF (vars_defined) zx_tmp_fi2d(:)=solswcf_aero(:,1)*swradcorr(:)
1727             CALL histwrite_phy(o_swsrfcf_nat,zx_tmp_fi2d)
1728             IF (vars_defined) zx_tmp_fi2d(:)=topswcf_aero(:,2)*swradcorr(:)
1729             CALL histwrite_phy(o_swtoacf_ant,zx_tmp_fi2d)
1730             IF (vars_defined) zx_tmp_fi2d(:)=solswcf_aero(:,2)*swradcorr(:)
1731             CALL histwrite_phy(o_swsrfcf_ant,zx_tmp_fi2d)
1732             IF (vars_defined) zx_tmp_fi2d(:)=topswcf_aero(:,3)*swradcorr(:)
1733             CALL histwrite_phy(o_swtoacf_zero,zx_tmp_fi2d)
1734             IF (vars_defined) zx_tmp_fi2d(:)=solswcf_aero(:,3)*swradcorr(:)
1735             CALL histwrite_phy(o_swsrfcf_zero,zx_tmp_fi2d)
1736          ENDIF
[1898]1737          !====MS forcing diagnostics
[1813]1738       ENDIF
1739       IF (ok_aie) THEN
[3435]1740          IF (vars_defined) zx_tmp_fi2d(:)= topswai_aero*swradcorr
1741          CALL histwrite_phy(o_topswai, zx_tmp_fi2d)
1742         
1743          IF (vars_defined) zx_tmp_fi2d(:)=toplwai_aero*swradcorr
1744          CALL histwrite_phy(o_toplwai, zx_tmp_fi2d)
1745         
1746          IF (vars_defined) zx_tmp_fi2d(:)=solswai_aero*swradcorr
1747          CALL histwrite_phy(o_solswai, zx_tmp_fi2d)
1748         
1749          IF (vars_defined) zx_tmp_fi2d(:)=sollwai_aero*swradcorr
1750          CALL histwrite_phy(o_sollwai, zx_tmp_fi2d)
[2003]1751       ENDIF
1752       IF (flag_aerosol.GT.0.AND.ok_cdnc) THEN
[1898]1753          CALL histwrite_phy(o_scdnc, scdnc)
1754          CALL histwrite_phy(o_cldncl, cldncl)
1755          CALL histwrite_phy(o_reffclws, reffclws)
1756          CALL histwrite_phy(o_reffclwc, reffclwc)
1757          CALL histwrite_phy(o_cldnvi, cldnvi)
1758          CALL histwrite_phy(o_lcc, lcc)
1759          CALL histwrite_phy(o_lcc3d, lcc3d)
1760          CALL histwrite_phy(o_lcc3dcon, lcc3dcon)
1761          CALL histwrite_phy(o_lcc3dstra, lcc3dstra)
[3121]1762          CALL histwrite_phy(o_icc3dcon, icc3dcon)
1763          CALL histwrite_phy(o_icc3dstra, icc3dstra)
[3124]1764          CALL histwrite_phy(o_cldicemxrat, zfice)
[3590]1765          IF (vars_defined) zx_tmp_fi3d(:,:)=1-zfice(:,:)
1766          CALL histwrite_phy(o_cldwatmxrat, zx_tmp_fi3d)
[1898]1767          CALL histwrite_phy(o_reffclwtop, reffclwtop)
[1813]1768       ENDIF
[1898]1769       ! Champs 3D:
[1813]1770       IF (ok_ade .OR. ok_aie) then
[4170]1771          IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN
[4106]1772             CALL histwrite_phy(o_ec550aer, ec550aer)
1773          ENDIF
[1813]1774       ENDIF
[1898]1775       CALL histwrite_phy(o_lwcon, flwc)
1776       CALL histwrite_phy(o_iwcon, fiwc)
1777       CALL histwrite_phy(o_temp, t_seri)
1778       CALL histwrite_phy(o_theta, theta)
1779       CALL histwrite_phy(o_ovapinit, qx(:,:,ivap))
1780       CALL histwrite_phy(o_ovap, q_seri)
1781       CALL histwrite_phy(o_oliq, ql_seri)
[3435]1782
1783       IF (vars_defined) zx_tmp_fi3d = ql_seri+qs_seri
1784       CALL histwrite_phy(o_ocond, zx_tmp_fi3d)
1785
[1898]1786       CALL histwrite_phy(o_geop, zphi)
1787       CALL histwrite_phy(o_vitu, u_seri)
1788       CALL histwrite_phy(o_vitv, v_seri)
1789       CALL histwrite_phy(o_vitw, omega)
1790       CALL histwrite_phy(o_pres, pplay)
1791       CALL histwrite_phy(o_paprs, paprs(:,1:klev))
[3435]1792       
1793       IF (vars_defined) zx_tmp_fi3d = zphi/RG
1794       CALL histwrite_phy(o_zfull,zx_tmp_fi3d)
[1813]1795
[3066]1796#ifdef CPP_XIOS
[3048]1797!solbnd begin
1798#ifdef CPP_RRTM
1799      IF (iflag_rrtm.EQ.1) THEN
1800       IF (vars_defined) THEN
1801        DO ISW=1, NSW
1802          zx_tmp_fi3dsp(:,ISW) = swdn(:,klevp1)*swradcorr(:)*RSUN(ISW)
1803        ENDDO
1804        CALL histwrite_phy(o_solbnd, zx_tmp_fi3dsp)
1805       ENDIF
1806      ENDIF
1807#endif
1808!solbnd end
[3066]1809#endif
[3048]1810
[2541]1811       IF (flag_aerosol_strat.EQ.2) THEN
1812         CALL histwrite_phy(o_stratomask, stratomask)
1813       ENDIF
1814     
[1898]1815       IF (vars_defined)  THEN
[2377]1816        zx_tmp_fi3d(:,1)= pphis(:)/RG
1817        DO k = 2, klev
1818         DO i = 1, klon
[3234]1819            zx_tmp_fi3d(i,k) = zphi(i,k-1)/RG + &
[2377]1820                          (zphi(i,k)-zphi(i,k-1))/RG * &
[3234]1821                          (paprs(i,k)-pplay(i,k-1))/(pplay(i,k)-pplay(i,k-1))
[2377]1822         ENDDO
1823        ENDDO
[1898]1824       ENDIF
1825       CALL histwrite_phy(o_zhalf, zx_tmp_fi3d)
1826       CALL histwrite_phy(o_rneb, cldfra)
1827       CALL histwrite_phy(o_rnebcon, rnebcon)
1828       CALL histwrite_phy(o_rnebls, rneb)
[2945]1829       CALL histwrite_phy(o_rneblsvol, rneblsvol)
[1938]1830       IF (vars_defined)  THEN
1831          DO k=1, klev
1832             DO i=1, klon
1833                zx_tmp_fi3d(i,k)=cldfra(i,k)*JrNt(i)
1834             ENDDO
1835          ENDDO
1836       ENDIF
[1924]1837       CALL histwrite_phy(o_rnebjn, zx_tmp_fi3d)
[1898]1838       CALL histwrite_phy(o_rhum, zx_rh)
[3787]1839       IF (iflag_ice_thermo .GT. 0) THEN
[3799]1840          IF (vars_defined) zx_tmp_fi3d = zx_rhl * 100.
1841          CALL histwrite_phy(o_rhl, zx_tmp_fi3d)
1842          IF (vars_defined) zx_tmp_fi3d = zx_rhi * 100.
1843          CALL histwrite_phy(o_rhi, zx_tmp_fi3d)
[3787]1844       ENDIF
[3780]1845
[4059]1846!--aviation & supersaturation
[4070]1847       IF (ok_ice_sursat) THEN
1848         CALL histwrite_phy(o_oclr, qclr)
1849         CALL histwrite_phy(o_ocld, qcld)
1850         CALL histwrite_phy(o_oss, qss)
1851         CALL histwrite_phy(o_ovc, qvc)
1852         CALL histwrite_phy(o_rnebclr, rnebclr)
1853         CALL histwrite_phy(o_rnebss, rnebss)
1854         CALL histwrite_phy(o_rnebseri, rneb_seri)
1855         CALL histwrite_phy(o_gammass, gamma_ss)
1856         CALL histwrite_phy(o_N1_ss, N1_ss)
1857         CALL histwrite_phy(o_N2_ss, N2_ss)
1858         CALL histwrite_phy(o_drnebsub, drneb_sub)
1859         CALL histwrite_phy(o_drnebcon, drneb_con)
1860         CALL histwrite_phy(o_drnebtur, drneb_tur)
1861         CALL histwrite_phy(o_drnebavi, drneb_avi)
1862         CALL histwrite_phy(o_qsatl, zqsatl)
1863         CALL histwrite_phy(o_qsats, zqsats)
1864         CALL histwrite_phy(o_Tcontr, Tcontr)
1865         CALL histwrite_phy(o_qcontr, qcontr)
1866         CALL histwrite_phy(o_qcontr2, qcontr2)
1867         CALL histwrite_phy(o_fcontrN, fcontrN)
1868         CALL histwrite_phy(o_fcontrP, fcontrP)
1869       ENDIF
[4062]1870       IF (ok_plane_contrail) THEN
1871         CALL histwrite_phy(o_flight_m, flight_m)
1872       ENDIF
1873       IF (ok_plane_h2o) THEN
1874         CALL histwrite_phy(o_flight_h2o, flight_h2o)
1875       ENDIF
[3435]1876       
1877       IF (vars_defined) zx_tmp_fi3d = wo(:, :, 1) * dobson_u * 1e3 / zmasse / rmo3 * rmd
1878       CALL histwrite_phy(o_ozone, zx_tmp_fi3d)
[1813]1879
[1898]1880       IF (read_climoz == 2) THEN
[3435]1881         IF (vars_defined) zx_tmp_fi3d = wo(:, :, 2) * dobson_u * 1e3 / zmasse / rmo3 * rmd
1882         CALL histwrite_phy(o_ozone_light, zx_tmp_fi3d)
[1898]1883       ENDIF
[1813]1884
[2665]1885       CALL histwrite_phy(o_duphy, d_u)
1886
[1898]1887       CALL histwrite_phy(o_dtphy, d_t)
[2496]1888
[1898]1889       CALL histwrite_phy(o_dqphy,  d_qx(:,:,ivap))
[3435]1890       IF (vars_defined) CALL water_int(klon,klev,d_qx(:,:,ivap),zmasse,zx_tmp_fi2d)
[2486]1891       CALL histwrite_phy(o_dqphy2d,  zx_tmp_fi2d)
[2496]1892
1893       CALL histwrite_phy(o_dqlphy,  d_qx(:,:,iliq))
[3435]1894       IF (vars_defined) CALL water_int(klon,klev,d_qx(:,:,iliq),zmasse,zx_tmp_fi2d)
[2496]1895       CALL histwrite_phy(o_dqlphy2d,  zx_tmp_fi2d)
1896
1897       IF (nqo.EQ.3) THEN
1898       CALL histwrite_phy(o_dqsphy,  d_qx(:,:,isol))
[3435]1899       IF (vars_defined) CALL water_int(klon,klev,d_qx(:,:,isol),zmasse,zx_tmp_fi2d)
[2496]1900       CALL histwrite_phy(o_dqsphy2d,  zx_tmp_fi2d)
1901       ELSE
1902       zx_tmp_fi3d=0.0
1903       CALL histwrite_phy(o_dqsphy,  zx_tmp_fi3d)
1904       zx_tmp_fi2d=0.0
1905       CALL histwrite_phy(o_dqsphy2d,  zx_tmp_fi2d)
1906       ENDIF
1907
[1898]1908       DO nsrf=1, nbsrf
1909          IF (vars_defined) zx_tmp_fi2d(1 : klon) = falb1( 1 : klon, nsrf)
1910          CALL histwrite_phy(o_albe_srf(nsrf), zx_tmp_fi2d)
[2243]1911          IF (vars_defined) zx_tmp_fi2d(1 : klon) = z0m( 1 : klon, nsrf)
1912          CALL histwrite_phy(o_z0m_srf(nsrf), zx_tmp_fi2d)
1913          IF (vars_defined) zx_tmp_fi2d(1 : klon) = z0h( 1 : klon, nsrf)
1914          CALL histwrite_phy(o_z0h_srf(nsrf), zx_tmp_fi2d)
[1898]1915          IF (vars_defined) zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf)
1916          CALL histwrite_phy(o_ages_srf(nsrf), zx_tmp_fi2d)
[2209]1917          IF (vars_defined) zx_tmp_fi2d(1 : klon) = snow( 1 : klon, nsrf)
1918          CALL histwrite_phy(o_snow_srf(nsrf), zx_tmp_fi2d)
[1898]1919       ENDDO !nsrf=1, nbsrf
1920       CALL histwrite_phy(o_alb1, albsol1)
1921       CALL histwrite_phy(o_alb2, albsol2)
1922       !FH Sorties pour la couche limite
[2690]1923       IF (iflag_pbl>1) THEN
[1898]1924          zx_tmp_fi3d=0.
1925          IF (vars_defined) THEN
[2690]1926             DO nsrf=1,nbsrf
1927                DO k=1,klev
[1898]1928                   zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k) &
1929                        +pctsrf(:,nsrf)*pbl_tke(:,k,nsrf)
[2690]1930                ENDDO
1931             ENDDO
[1898]1932          ENDIF
1933          CALL histwrite_phy(o_tke, zx_tmp_fi3d)
[3780]1934          CALL histwrite_phy(o_tke_max, zx_tmp_fi3d) 
[1813]1935
[1898]1936       ENDIF
[1813]1937
[1898]1938       CALL histwrite_phy(o_kz, coefh(:,:,is_ave))
[1813]1939
[1898]1940       CALL histwrite_phy(o_kz_max, coefh(:,:,is_ave))
[1813]1941
[1898]1942       CALL histwrite_phy(o_clwcon, clwcon0)
1943       CALL histwrite_phy(o_dtdyn, d_t_dyn)
[2496]1944
[1898]1945       CALL histwrite_phy(o_dqdyn, d_q_dyn)
[2496]1946
[2499]1947       CALL histwrite_phy(o_dqdyn2d,d_q_dyn2d)
1948
[2496]1949       CALL histwrite_phy(o_dqldyn, d_ql_dyn)
1950
[2499]1951       CALL histwrite_phy(o_dqldyn2d, d_ql_dyn2d)
1952
[2496]1953       CALL histwrite_phy(o_dqsdyn, d_qs_dyn)
1954
[2499]1955       CALL histwrite_phy(o_dqsdyn2d, d_qs_dyn2d)
1956
[1898]1957       CALL histwrite_phy(o_dudyn, d_u_dyn)
1958       CALL histwrite_phy(o_dvdyn, d_v_dyn)
[1813]1959
[1898]1960       IF (vars_defined) THEN
1961          zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys
1962       ENDIF
1963       CALL histwrite_phy(o_dtcon, zx_tmp_fi3d)
[3453]1964       IF (iflag_thermals.EQ.0) THEN
[1898]1965          IF (vars_defined) THEN
1966             zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + &
1967                  d_t_ajsb(1:klon,1:klev)/pdtphys
1968          ENDIF
1969          CALL histwrite_phy(o_tntc, zx_tmp_fi3d)
[3453]1970       ELSE IF(iflag_thermals.GE.1.AND.iflag_wake.EQ.1) THEN
[1898]1971          IF (vars_defined) THEN
1972             zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + &
1973                  d_t_ajs(1:klon,1:klev)/pdtphys + &
1974                  d_t_wake(1:klon,1:klev)/pdtphys
1975          ENDIF
1976          CALL histwrite_phy(o_tntc, zx_tmp_fi3d)
[3453]1977       ENDIF
[1898]1978       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys
1979       CALL histwrite_phy(o_ducon, zx_tmp_fi3d)
1980       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_con(1:klon,1:klev)/pdtphys
1981       CALL histwrite_phy(o_dvcon, zx_tmp_fi3d)
1982       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
1983       CALL histwrite_phy(o_dqcon, zx_tmp_fi3d)
[3435]1984       IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
[2486]1985       CALL histwrite_phy(o_dqcon2d, zx_tmp_fi2d)
[1813]1986
[2690]1987       IF (iflag_thermals.EQ.0) THEN
[1898]1988          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
1989          CALL histwrite_phy(o_tnhusc, zx_tmp_fi3d)
[2690]1990       ELSE IF (iflag_thermals.GE.1.AND.iflag_wake.EQ.1) THEN
[1898]1991          IF (vars_defined) THEN
1992             zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys + &
1993                  d_q_ajs(1:klon,1:klev)/pdtphys + &
1994                  d_q_wake(1:klon,1:klev)/pdtphys
1995          ENDIF
1996          CALL histwrite_phy(o_tnhusc, zx_tmp_fi3d)
1997       ENDIF
[1813]1998
[1898]1999       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lsc(1:klon,1:klev)/pdtphys
2000       CALL histwrite_phy(o_dtlsc, zx_tmp_fi3d)
2001       IF (vars_defined) zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+ &
2002            d_t_eva(1:klon,1:klev))/pdtphys
2003       CALL histwrite_phy(o_dtlschr, zx_tmp_fi3d)
2004       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys
2005       CALL histwrite_phy(o_dqlsc, zx_tmp_fi3d)
[3435]2006       IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
[2486]2007       CALL histwrite_phy(o_dqlsc2d, zx_tmp_fi2d)
[1898]2008       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=beta_prec(1:klon,1:klev)
2009       CALL histwrite_phy(o_beta_prec, zx_tmp_fi3d)
[1813]2010!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[1898]2011       ! Sorties specifiques a la separation thermiques/non thermiques
[2690]2012       IF (iflag_thermals>=1) THEN
2013          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscth(1:klon,1:klev)/pdtphys
[1898]2014          CALL histwrite_phy(o_dtlscth, zx_tmp_fi3d)
[2690]2015          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscst(1:klon,1:klev)/pdtphys
[1898]2016          CALL histwrite_phy(o_dtlscst, zx_tmp_fi3d)
[2690]2017          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscth(1:klon,1:klev)/pdtphys
[1898]2018          CALL histwrite_phy(o_dqlscth, zx_tmp_fi3d)
[3435]2019          IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
[2486]2020          CALL histwrite_phy(o_dqlscth2d, zx_tmp_fi2d)
[2690]2021          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscst(1:klon,1:klev)/pdtphys
[1898]2022          CALL histwrite_phy(o_dqlscst, zx_tmp_fi3d)
[3435]2023          IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
[2486]2024          CALL histwrite_phy(o_dqlscst2d, zx_tmp_fi2d)
[1898]2025          CALL histwrite_phy(o_plulth, plul_th)
2026          CALL histwrite_phy(o_plulst, plul_st)
2027          IF (vars_defined) THEN
[3453]2028             DO i=1,klon
[3171]2029                zx_tmp_fi2d(1:klon)=lmax_th(:)
[3453]2030             ENDDO
[3171]2031          ENDIF
2032          CALL histwrite_phy(o_lmaxth, zx_tmp_fi2d)
2033          IF (vars_defined) THEN
[2690]2034             DO k=1,klev
2035                DO i=1,klon
2036                   IF (ptconvth(i,k)) THEN
[1898]2037                      zx_tmp_fi3d(i,k)=1.
[2690]2038                   ELSE
[1898]2039                      zx_tmp_fi3d(i,k)=0.
[2690]2040                   ENDIF
2041                ENDDO
2042             ENDDO
[1898]2043          ENDIF
2044          CALL histwrite_phy(o_ptconvth, zx_tmp_fi3d)
[2690]2045       ENDIF ! iflag_thermals>=1
[1813]2046!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[3171]2047       zpt_conv = 0.
2048       WHERE (ptconv) zpt_conv = 1.
2049       CALL histwrite_phy(o_ptconv, zpt_conv)
2050!!       IF (vars_defined)         zx_tmp_fi2d=float(itau_con)/float(itap)
2051!!       CALL histwrite_phy(o_ftime_con, zx_tmp_fi2d)
2052       IF (vars_defined) THEN
2053          zpt_conv2d(:) = 0.
2054          DO k=1,klev
2055            WHERE (ptconv(:,k)) zpt_conv2d(:) = 1.
2056          ENDDO
2057       ENDIF
2058       CALL histwrite_phy(o_ftime_deepcv, zpt_conv2d)
2059       IF (vars_defined) THEN
2060          zx_tmp_fi2d(:) = 0.
2061          DO k=1,klev
2062            WHERE (ptconvth(:,k)) zx_tmp_fi2d(:) = 1.
2063          ENDDO
2064       ENDIF
2065       CALL histwrite_phy(o_ftime_th, zx_tmp_fi2d)
2066       IF (vars_defined) THEN
2067           zx_tmp_fi2d(:) = max(zx_tmp_fi2d(:),zpt_conv2d(:))
2068       ENDIF
2069       CALL histwrite_phy(o_ftime_con, zx_tmp_fi2d)
2070!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[1898]2071       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys
2072       CALL histwrite_phy(o_dtvdf, zx_tmp_fi3d)
[2690]2073       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_diss(1:klon,1:klev)/pdtphys
[1898]2074       CALL histwrite_phy(o_dtdis, zx_tmp_fi3d)
2075       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
2076       CALL histwrite_phy(o_dqvdf, zx_tmp_fi3d)
[3435]2077       IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
[2486]2078       CALL histwrite_phy(o_dqvdf2d, zx_tmp_fi2d)
[1898]2079       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys
2080       CALL histwrite_phy(o_dteva, zx_tmp_fi3d)
2081       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys
2082       CALL histwrite_phy(o_dqeva, zx_tmp_fi3d)
[3435]2083       IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
[2486]2084       CALL histwrite_phy(o_dqeva2d, zx_tmp_fi2d)
[1898]2085       CALL histwrite_phy(o_ratqs, ratqs)
2086       IF (vars_defined) THEN
2087          zx_tmp_fi3d(1:klon,1:klev)=d_t_ajs(1:klon,1:klev)/pdtphys - &
2088               d_t_ajsb(1:klon,1:klev)/pdtphys
2089       ENDIF
2090       CALL histwrite_phy(o_dtthe, zx_tmp_fi3d)
[1903]2091       IF (vars_defined) THEN
[1943]2092          zx_tmp_fi3d(1:klon,1:klev)=d_u_ajs(1:klon,1:klev)/pdtphys
[1903]2093       ENDIF
2094       CALL histwrite_phy(o_duthe, zx_tmp_fi3d)
2095       IF (vars_defined) THEN
[1943]2096          zx_tmp_fi3d(1:klon,1:klev)=d_v_ajs(1:klon,1:klev)/pdtphys
[1903]2097       ENDIF
2098       CALL histwrite_phy(o_dvthe, zx_tmp_fi3d)
2099
[1813]2100       IF (iflag_thermals>=1) THEN
[1898]2101          ! Pour l instant 0 a y reflichir pour les thermiques
[3171]2102          ! regroupe avec ftime_deepcv et ftime_con
2103          !!zx_tmp_fi2d=0.
2104          !!CALL histwrite_phy(o_ftime_th, zx_tmp_fi2d)
[1898]2105          CALL histwrite_phy(o_f_th, fm_therm)
2106          CALL histwrite_phy(o_e_th, entr_therm)
2107          CALL histwrite_phy(o_w_th, zw2)
2108          CALL histwrite_phy(o_q_th, zqasc)
2109          CALL histwrite_phy(o_a_th, fraca)
[2958]2110          CALL histwrite_phy(o_cloudth_sth, cloudth_sth)
2111          CALL histwrite_phy(o_cloudth_senv, cloudth_senv)
2112          CALL histwrite_phy(o_cloudth_sigmath, cloudth_sigmath)
2113          CALL histwrite_phy(o_cloudth_sigmaenv, cloudth_sigmaenv)
[1898]2114          CALL histwrite_phy(o_d_th, detr_therm)
2115          CALL histwrite_phy(o_f0_th, f0)
2116          CALL histwrite_phy(o_zmax_th, zmax_th)
2117          IF (vars_defined) THEN
2118             zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys - &
2119                  d_q_ajsb(1:klon,1:klev)/pdtphys
2120          ENDIF
2121          CALL histwrite_phy(o_dqthe, zx_tmp_fi3d)
[3435]2122          IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
[2486]2123          CALL histwrite_phy(o_dqthe2d, zx_tmp_fi2d)
[1898]2124       ENDIF !iflag_thermals
[2690]2125       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys
[1898]2126       CALL histwrite_phy(o_dtajs, zx_tmp_fi3d)
[2690]2127       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys
[1898]2128       CALL histwrite_phy(o_dqajs, zx_tmp_fi3d)
[3435]2129       IF (vars_defined) CALL water_int(klon,klev,zx_tmp_fi3d,zmasse,zx_tmp_fi2d)
[2486]2130       CALL histwrite_phy(o_dqajs2d, zx_tmp_fi2d)
[2690]2131       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys
[1898]2132       CALL histwrite_phy(o_dtswr, zx_tmp_fi3d)
[2690]2133       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_sw0(1:klon,1:klev)/pdtphys
[1898]2134       CALL histwrite_phy(o_dtsw0, zx_tmp_fi3d)
[2690]2135       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lwr(1:klon,1:klev)/pdtphys
[1898]2136       CALL histwrite_phy(o_dtlwr, zx_tmp_fi3d)
[2690]2137       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lw0(1:klon,1:klev)/pdtphys
[1898]2138       CALL histwrite_phy(o_dtlw0, zx_tmp_fi3d)
[2690]2139       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)/pdtphys
[1898]2140       CALL histwrite_phy(o_dtec, zx_tmp_fi3d)
[2690]2141       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
[1898]2142       CALL histwrite_phy(o_duvdf, zx_tmp_fi3d)
[2690]2143       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
[1898]2144       CALL histwrite_phy(o_dvvdf, zx_tmp_fi3d)
[1813]2145       IF (ok_orodr) THEN
[2690]2146          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
[1898]2147          CALL histwrite_phy(o_duoro, zx_tmp_fi3d)
[2690]2148          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
[1898]2149          CALL histwrite_phy(o_dvoro, zx_tmp_fi3d)
[2690]2150          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_oro(1:klon,1:klev)/pdtphys
[1898]2151          CALL histwrite_phy(o_dtoro, zx_tmp_fi3d)
[1813]2152       ENDIF
[1898]2153       IF (ok_orolf) THEN
[2690]2154          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
[1898]2155          CALL histwrite_phy(o_dulif, zx_tmp_fi3d)
[1903]2156
[2690]2157          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
[1903]2158          CALL histwrite_phy(o_dvlif, zx_tmp_fi3d)
2159
[2690]2160          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lif(1:klon,1:klev)/pdtphys
[1903]2161          CALL histwrite_phy(o_dtlif, zx_tmp_fi3d)
[1813]2162       ENDIF
2163
2164       IF (ok_hines) THEN
[3435]2165          IF (vars_defined) zx_tmp_fi3d=du_gwd_hines/pdtphys
2166          CALL histwrite_phy(o_du_gwd_hines, zx_tmp_fi3d)
2167
2168          IF (vars_defined) zx_tmp_fi3d= dv_gwd_hines/pdtphys         
2169          CALL histwrite_phy(o_dv_gwd_hines, zx_tmp_fi3d)
2170         
[2690]2171          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_hin(1:klon,1:klev)/pdtphys
[1898]2172          CALL histwrite_phy(o_dthin, zx_tmp_fi3d)
[2333]2173          CALL histwrite_phy(o_ustr_gwd_hines, zustr_gwd_hines)
2174          CALL histwrite_phy(o_vstr_gwd_hines, zvstr_gwd_hines)
[2690]2175       ENDIF
[2333]2176
[2690]2177       IF (.not. ok_hines .and. ok_gwd_rando) THEN
[3435]2178          IF (vars_defined)  zx_tmp_fi3d=du_gwd_front / pdtphys
2179          CALL histwrite_phy(o_du_gwd_front, zx_tmp_fi3d)
2180         
2181          IF (vars_defined)  zx_tmp_fi3d=dv_gwd_front / pdtphys
2182          CALL histwrite_phy(o_dv_gwd_front, zx_tmp_fi3d)
2183         
[2333]2184          CALL histwrite_phy(o_ustr_gwd_front, zustr_gwd_front)
2185          CALL histwrite_phy(o_vstr_gwd_front, zvstr_gwd_front)
[1898]2186       ENDIF
[1938]2187
[2690]2188       IF (ok_gwd_rando) THEN
[3435]2189          IF (vars_defined)  zx_tmp_fi3d=du_gwd_rando / pdtphys
2190          CALL histwrite_phy(o_du_gwd_rando, zx_tmp_fi3d)
2191         
2192          IF (vars_defined)  zx_tmp_fi3d=dv_gwd_rando / pdtphys
2193          CALL histwrite_phy(o_dv_gwd_rando, zx_tmp_fi3d)
[2333]2194          CALL histwrite_phy(o_ustr_gwd_rando, zustr_gwd_rando)
[1938]2195          CALL histwrite_phy(o_vstr_gwd_rando, zvstr_gwd_rando)
[2333]2196          CALL histwrite_phy(o_east_gwstress, east_gwstress )
2197          CALL histwrite_phy(o_west_gwstress, west_gwstress )
[2690]2198       ENDIF
[1938]2199
[2690]2200       IF (ok_qch4) THEN
[3435]2201          IF (vars_defined) zx_tmp_fi3d=d_q_ch4 / pdtphys
2202          CALL histwrite_phy(o_dqch4, zx_tmp_fi3d)
[2136]2203       ENDIF
[3435]2204       
2205       IF (vars_defined) THEN
2206         DO k=1, klevp1
2207           zx_tmp_fi3d1(:,k)=swup(:,k)*swradcorr(:)
2208         ENDDO
2209       ENDIF
2210       
2211       CALL histwrite_phy(o_rsu, zx_tmp_fi3d1)
[2136]2212
[3435]2213
2214       IF (vars_defined) THEN
2215         DO k=1, klevp1
2216           zx_tmp_fi3d1(:,k)=swdn(:,k)*swradcorr(:)
2217         ENDDO
2218       ENDIF
2219       
[2366]2220       CALL histwrite_phy(o_rsd, zx_tmp_fi3d1)
[3435]2221
2222       IF (vars_defined) THEN
2223         DO k=1, klevp1
2224           zx_tmp_fi3d1(:,k)=swup0(:,k)*swradcorr(:)
2225         ENDDO
2226       ENDIF
2227       
[2366]2228       CALL histwrite_phy(o_rsucs, zx_tmp_fi3d1)
[3435]2229
[4170]2230       IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN
[4106]2231          IF (vars_defined) THEN
2232             DO k=1, klevp1
2233                zx_tmp_fi3d1(:,k)=swupc0(:,k)*swradcorr(:)
2234             ENDDO
2235          ENDIF
2236          CALL histwrite_phy(o_rsucsaf, zx_tmp_fi3d1)
[3435]2237       ENDIF
2238
2239       IF (vars_defined) THEN
2240         DO k=1, klevp1
2241           zx_tmp_fi3d1(:,k)=swdn0(:,k)*swradcorr(:)
2242         ENDDO
2243       ENDIF
[2366]2244       CALL histwrite_phy(o_rsdcs, zx_tmp_fi3d1)
[3435]2245
[4170]2246       IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN
[4106]2247          IF (vars_defined) THEN
2248             DO k=1, klevp1
2249                zx_tmp_fi3d1(:,k)=swdnc0(:,k)*swradcorr(:)
2250             ENDDO
2251          ENDIF
2252          CALL histwrite_phy(o_rsdcsaf, zx_tmp_fi3d1)
[3435]2253       ENDIF
[2366]2254
[1898]2255       CALL histwrite_phy(o_rlu, lwup)
2256       CALL histwrite_phy(o_rld, lwdn)
2257       CALL histwrite_phy(o_rlucs, lwup0)
2258       CALL histwrite_phy(o_rldcs, lwdn0)
[2366]2259
[2690]2260       IF (vars_defined) THEN
[1898]2261          zx_tmp_fi3d(1:klon,1:klev)=d_t(1:klon,1:klev)+ &
2262               d_t_dyn(1:klon,1:klev)
2263       ENDIF
2264       CALL histwrite_phy(o_tnt, zx_tmp_fi3d)
[2366]2265
[2690]2266       IF (vars_defined) THEN
[2194]2267          zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys + &
2268               d_t_lwr(1:klon,1:klev)/pdtphys
[1898]2269       ENDIF
2270       CALL histwrite_phy(o_tntr, zx_tmp_fi3d)
[2690]2271       IF (vars_defined) THEN
[1898]2272          zx_tmp_fi3d(1:klon,1:klev)= (d_t_lsc(1:klon,1:klev)+ &
2273               d_t_eva(1:klon,1:klev)+ &
2274               d_t_vdf(1:klon,1:klev))/pdtphys
2275       ENDIF
2276       CALL histwrite_phy(o_tntscpbl, zx_tmp_fi3d)
[2690]2277       IF (vars_defined) THEN
[1898]2278          zx_tmp_fi3d(1:klon,1:klev)=d_qx(1:klon,1:klev,ivap)+ &
2279               d_q_dyn(1:klon,1:klev)
2280       ENDIF
2281       CALL histwrite_phy(o_tnhus, zx_tmp_fi3d)
[2690]2282       IF (vars_defined) THEN
[1898]2283          zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys+ &
2284               d_q_eva(1:klon,1:klev)/pdtphys
2285       ENDIF
2286       CALL histwrite_phy(o_tnhusscpbl, zx_tmp_fi3d)
2287       CALL histwrite_phy(o_evu, coefm(:,:,is_ave))
[2690]2288       IF (vars_defined) THEN
[1898]2289          zx_tmp_fi3d(1:klon,1:klev)=q_seri(1:klon,1:klev)+ &
2290               ql_seri(1:klon,1:klev)
2291       ENDIF
2292       CALL histwrite_phy(o_h2o, zx_tmp_fi3d)
[2690]2293       IF (iflag_con >= 3) THEN
2294          IF (vars_defined) THEN
[1813]2295             zx_tmp_fi3d(1:klon,1:klev)=-1 * (dnwd(1:klon,1:klev)+ &
2296                  dnwd0(1:klon,1:klev))
[1898]2297          ENDIF
2298          CALL histwrite_phy(o_mcd, zx_tmp_fi3d)
[2690]2299          IF (vars_defined) THEN
[1813]2300             zx_tmp_fi3d(1:klon,1:klev)=upwd(1:klon,1:klev) + &
2301                  dnwd(1:klon,1:klev)+ dnwd0(1:klon,1:klev)
[1898]2302          ENDIF
2303          CALL histwrite_phy(o_dmc, zx_tmp_fi3d)
[2690]2304       ELSE IF (iflag_con == 2) THEN
[1898]2305          CALL histwrite_phy(o_mcd,  pmfd)
[3435]2306          IF (vars_defined) zx_tmp_fi3d = pmfu + pmfd
2307          CALL histwrite_phy(o_dmc,  zx_tmp_fi3d)
[2690]2308       ENDIF
[1898]2309       CALL histwrite_phy(o_ref_liq, ref_liq)
2310       CALL histwrite_phy(o_ref_ice, ref_ice)
[2989]2311!
2312       IF (ok_4xCO2atm) THEN
[2690]2313          IF (vars_defined) zx_tmp_fi2d(:) = swupp(:,klevp1)*swradcorr(:)
[1898]2314          CALL histwrite_phy(o_rsut4co2, zx_tmp_fi2d)
[2690]2315          IF (vars_defined) zx_tmp_fi2d(:) = lwupp(:,klevp1)
[1898]2316          CALL histwrite_phy(o_rlut4co2, zx_tmp_fi2d)
[2690]2317          IF (vars_defined) zx_tmp_fi2d(:) = swup0p(:,klevp1)*swradcorr(:)
[1898]2318          CALL histwrite_phy(o_rsutcs4co2, zx_tmp_fi2d)
[2690]2319          IF (vars_defined) zx_tmp_fi2d(:) = lwup0p(:,klevp1)
[1898]2320          CALL histwrite_phy(o_rlutcs4co2, zx_tmp_fi2d)
[3435]2321          IF (vars_defined) THEN
2322            DO k=1, klevp1
2323              zx_tmp_fi3d1(:,k)=swupp(:,k)*swradcorr(:)
2324            ENDDO
2325          ENDIF
[2366]2326          CALL histwrite_phy(o_rsu4co2, zx_tmp_fi3d1)
[3435]2327          IF (vars_defined) THEN
2328            DO k=1, klevp1
2329              zx_tmp_fi3d1(:,k)=swup0p(:,k)*swradcorr(:)
2330            ENDDO
2331          ENDIF
[2366]2332          CALL histwrite_phy(o_rsucs4co2, zx_tmp_fi3d1)
[3435]2333          IF (vars_defined) THEN
2334            DO k=1, klevp1
2335              zx_tmp_fi3d1(:,k)=swdnp(:,k)*swradcorr(:)
2336            ENDDO
2337          ENDIF
[2366]2338          CALL histwrite_phy(o_rsd4co2, zx_tmp_fi3d1)
[3435]2339          IF (vars_defined) THEN
2340            DO k=1, klevp1
2341              zx_tmp_fi3d1(:,k)=swdn0p(:,k)*swradcorr(:)
2342            ENDDO
2343          ENDIF
[2366]2344          CALL histwrite_phy(o_rsdcs4co2, zx_tmp_fi3d1)
[1898]2345          CALL histwrite_phy(o_rlu4co2, lwupp)
2346          CALL histwrite_phy(o_rlucs4co2, lwup0p)
2347          CALL histwrite_phy(o_rld4co2, lwdnp)
2348          CALL histwrite_phy(o_rldcs4co2, lwdn0p)
[2989]2349       ENDIF !ok_4xCO2atm
[1828]2350!!!!!!!!!!!! Sorties niveaux de pression NMC !!!!!!!!!!!!!!!!!!!!
[2282]2351#ifdef CPP_IOIPSL
2352#ifndef CPP_XIOS
2353  IF (.NOT.ok_all_xml) THEN
2354       ! ATTENTION, LES ANCIENS HISTWRITE ONT ETES CONSERVES EN ATTENDANT MIEUX:
2355       ! Champs interpolles sur des niveaux de pression
[2754]2356       DO iff=7, nfiles-1 !--OB: here we deal with files 7,8,9
[1828]2357
[1898]2358          CALL histwrite_phy(o_tnondef,tnondef(:,:,iff-6),iff)
2359          CALL histwrite_phy(o_ta,twriteSTD(:,:,iff-6),iff)
2360          CALL histwrite_phy(o_zg,phiwriteSTD(:,:,iff-6),iff)
2361          CALL histwrite_phy(o_hus,qwriteSTD(:,:,iff-6),iff)
2362          CALL histwrite_phy(o_hur,rhwriteSTD(:,:,iff-6),iff)
2363          CALL histwrite_phy(o_ua,uwriteSTD(:,:,iff-6),iff)
2364          CALL histwrite_phy(o_va,vwriteSTD(:,:,iff-6),iff)
2365          CALL histwrite_phy(o_wap,wwriteSTD(:,:,iff-6),iff)
[2690]2366          IF (vars_defined) THEN
[1898]2367             DO k=1, nlevSTD
2368                DO i=1, klon
[2690]2369                   IF (tnondef(i,k,iff-6).NE.missing_val) THEN
2370                      IF (freq_outNMC(iff-6).LT.0) THEN
[1915]2371                         freq_moyNMC(iff-6)=(mth_len*un_jour)/freq_calNMC(iff-6)
2372                      ELSE
2373                         freq_moyNMC(iff-6)=freq_outNMC(iff-6)/freq_calNMC(iff-6)
2374                      ENDIF
[1971]2375                      zx_tmp_fi3d_STD(i,k) = (100.*tnondef(i,k,iff-6))/freq_moyNMC(iff-6)
[1898]2376                   ELSE
[1971]2377                      zx_tmp_fi3d_STD(i,k) = missing_val
[1898]2378                   ENDIF
2379                ENDDO
2380             ENDDO
2381          ENDIF
[1971]2382          CALL histwrite_phy(o_psbg,zx_tmp_fi3d_STD,iff)
[2690]2383          IF (vars_defined) THEN
[1898]2384             DO k=1, nlevSTD
2385                DO i=1, klon
[2690]2386                   IF (O3sumSTD(i,k,iff-6).NE.missing_val) THEN
[1971]2387                      zx_tmp_fi3d_STD(i,k) = O3sumSTD(i,k,iff-6) * 1.e+9
[1898]2388                   ELSE
[1971]2389                      zx_tmp_fi3d_STD(i,k) = missing_val
[1898]2390                   ENDIF
2391                ENDDO
2392             ENDDO !k=1, nlevSTD
2393          ENDIF
[1971]2394          CALL histwrite_phy(o_tro3,zx_tmp_fi3d_STD,iff)
[2690]2395          IF (read_climoz == 2) THEN
2396             IF (vars_defined) THEN
[1898]2397                DO k=1, nlevSTD
2398                   DO i=1, klon
[2690]2399                      IF (O3daysumSTD(i,k,iff-6).NE.missing_val) THEN
[1971]2400                         zx_tmp_fi3d_STD(i,k) = O3daysumSTD(i,k,iff-6) * 1.e+9
[1898]2401                      ELSE
[1971]2402                         zx_tmp_fi3d_STD(i,k) = missing_val
[1898]2403                      ENDIF
2404                   ENDDO
2405                ENDDO !k=1, nlevSTD
2406             ENDIF
[1971]2407             CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d_STD,iff)
[1898]2408          endif
2409          CALL histwrite_phy(o_uxv,uvsumSTD(:,:,iff-6),iff)
2410          CALL histwrite_phy(o_vxq,vqsumSTD(:,:,iff-6),iff)
2411          CALL histwrite_phy(o_vxT,vTsumSTD(:,:,iff-6),iff)
2412          CALL histwrite_phy(o_wxq,wqsumSTD(:,:,iff-6),iff)
2413          CALL histwrite_phy(o_vxphi,vphisumSTD(:,:,iff-6),iff)
2414          CALL histwrite_phy(o_wxT,wTsumSTD(:,:,iff-6),iff)
2415          CALL histwrite_phy(o_uxu,u2sumSTD(:,:,iff-6),iff)
2416          CALL histwrite_phy(o_vxv,v2sumSTD(:,:,iff-6),iff)
2417          CALL histwrite_phy(o_TxT,T2sumSTD(:,:,iff-6),iff)
2418       ENDDO !nfiles
[2282]2419  ENDIF
2420#endif
2421#endif
2422#ifdef CPP_XIOS
[2690]2423  IF (ok_all_xml) THEN
[2282]2424!      DO iff=7, nfiles
2425
2426!         CALL histwrite_phy(o_tnondef,tnondef(:,:,3))
2427          CALL histwrite_phy(o_ta,tlevSTD(:,:))
2428          CALL histwrite_phy(o_zg,philevSTD(:,:))
2429          CALL histwrite_phy(o_hus,qlevSTD(:,:))
2430          CALL histwrite_phy(o_hur,rhlevSTD(:,:))
2431          CALL histwrite_phy(o_ua,ulevSTD(:,:))
2432          CALL histwrite_phy(o_va,vlevSTD(:,:))
2433          CALL histwrite_phy(o_wap,wlevSTD(:,:))
[2690]2434!         IF (vars_defined) THEN
[2282]2435!            DO k=1, nlevSTD
2436!               DO i=1, klon
[2690]2437!                  IF (tnondef(i,k,3).NE.missing_val) THEN
2438!                     IF (freq_outNMC(iff-6).LT.0) THEN
[2282]2439!                        freq_moyNMC(iff-6)=(mth_len*un_jour)/freq_calNMC(iff-6)
2440!                     ELSE
2441!                        freq_moyNMC(iff-6)=freq_outNMC(iff-6)/freq_calNMC(iff-6)
2442!                     ENDIF
2443!                     zx_tmp_fi3d_STD(i,k) = (100.*tnondef(i,k,3))/freq_moyNMC(iff-6)
2444!                  ELSE
2445!                     zx_tmp_fi3d_STD(i,k) = missing_val
2446!                  ENDIF
2447!               ENDDO
2448!            ENDDO
2449!         ENDIF
2450!         CALL histwrite_phy(o_psbg,zx_tmp_fi3d_STD)
[2690]2451          IF (vars_defined) THEN
[2282]2452             DO k=1, nlevSTD
2453                DO i=1, klon
[2690]2454                   IF (O3STD(i,k).NE.missing_val) THEN
[2282]2455                      zx_tmp_fi3d_STD(i,k) = O3STD(i,k) * 1.e+9
2456                   ELSE
2457                      zx_tmp_fi3d_STD(i,k) = missing_val
2458                   ENDIF
2459                ENDDO
2460             ENDDO !k=1, nlevSTD
2461          ENDIF
2462          CALL histwrite_phy(o_tro3,zx_tmp_fi3d_STD)
[2690]2463          IF (read_climoz == 2) THEN
2464             IF (vars_defined) THEN
[2282]2465                DO k=1, nlevSTD
2466                   DO i=1, klon
[2690]2467                      IF (O3daySTD(i,k).NE.missing_val) THEN
[2282]2468                         zx_tmp_fi3d_STD(i,k) = O3daySTD(i,k) * 1.e+9
2469                      ELSE
2470                         zx_tmp_fi3d_STD(i,k) = missing_val
2471                      ENDIF
2472                   ENDDO
2473                ENDDO !k=1, nlevSTD
2474             ENDIF
2475             CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d_STD)
[2690]2476          ENDIF
[2282]2477          CALL histwrite_phy(o_uxv,uvSTD(:,:))
2478          CALL histwrite_phy(o_vxq,vqSTD(:,:))
2479          CALL histwrite_phy(o_vxT,vTSTD(:,:))
2480          CALL histwrite_phy(o_wxq,wqSTD(:,:))
2481          CALL histwrite_phy(o_vxphi,vphiSTD(:,:))
2482          CALL histwrite_phy(o_wxT,wTSTD(:,:))
2483          CALL histwrite_phy(o_uxu,u2STD(:,:))
2484          CALL histwrite_phy(o_vxv,v2STD(:,:))
2485          CALL histwrite_phy(o_TxT,T2STD(:,:))
2486!      ENDDO !nfiles
2487  ENDIF
2488#endif
[1828]2489!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[2973]2490       IF (iflag_phytrac == 1 ) then
[4170]2491!
2492         IF (ANY(types_trac == 'co2i')) THEN
[4056]2493           itr = 0
2494           DO iq = 1, nqtot
[4071]2495             IF(.NOT.tracers(iq)%isInPhysics) CYCLE
[4056]2496             itr = itr + 1
[4170]2497!            write(*,*) 'phys_output_write_mod 2370: itr=',itr
[2704]2498             !--3D fields
[4056]2499             CALL histwrite_phy(o_trac(itr), tr_seri(:,:,itr))
2500             CALL histwrite_phy(o_dtr_vdf(itr),d_tr_cl(:,:,itr))
2501             CALL histwrite_phy(o_dtr_the(itr),d_tr_th(:,:,itr))
2502             CALL histwrite_phy(o_dtr_con(itr),d_tr_cv(:,:,itr))
[4170]2503             !--2D fields
2504             !--CO2 burden
[1898]2505             zx_tmp_fi2d=0.
[2690]2506             IF (vars_defined) THEN
[1898]2507                DO k=1,klev
[4056]2508                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*tr_seri(:,k,itr)
[1898]2509                ENDDO
2510             ENDIF
[4056]2511             CALL histwrite_phy(o_trac_cum(itr), zx_tmp_fi2d)
[3550]2512           ENDDO !--iq
[4170]2513           !--CO2 net fluxes
2514           CALL histwrite_phy(o_flx_co2_land,  fco2_land)
2515           CALL histwrite_phy(o_flx_co2_ocean, fco2_ocean)
2516           CALL histwrite_phy(o_flx_co2_ocean_cor, fco2_ocean_cor)
2517           CALL histwrite_phy(o_flx_co2_land_cor, fco2_land_cor)
2518           CALL histwrite_phy(o_flx_co2_ff,    fco2_ff)
2519           CALL histwrite_phy(o_flx_co2_bb,    fco2_bb)
2520
2521         ELSE IF (ANY(types_trac == 'inco')) THEN
[4056]2522           itr = 0
2523           DO iq = 1, nqtot
[4071]2524             IF(.NOT.tracers(iq)%isInPhysics) CYCLE
[4170]2525             itr = itr+1
2526             IF(tracers(iq)%component /= 'co2i') CYCLE
[3453]2527             !--3D fields
[4170]2528             CALL histwrite_phy(o_trac   (itr),tr_seri(:,:,itr))
[4056]2529             CALL histwrite_phy(o_dtr_vdf(itr),d_tr_cl(:,:,itr))
2530             CALL histwrite_phy(o_dtr_the(itr),d_tr_th(:,:,itr))
2531             CALL histwrite_phy(o_dtr_con(itr),d_tr_cv(:,:,itr))
[3453]2532             !--2D fields
2533             !--CO2 burden
2534             zx_tmp_fi2d=0.
2535             IF (vars_defined) THEN
2536                DO k=1,klev
[4056]2537                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*tr_seri(:,k,itr)
[3453]2538                ENDDO
2539             ENDIF
[4056]2540             CALL histwrite_phy(o_trac_cum(itr), zx_tmp_fi2d)
[3550]2541           ENDDO !--iq
2542           !--CO2 net fluxes
2543           CALL histwrite_phy(o_flx_co2_land,  fco2_land)
2544           CALL histwrite_phy(o_flx_co2_ocean, fco2_ocean)
[3857]2545           CALL histwrite_phy(o_flx_co2_ocean_cor, fco2_ocean_cor)
2546           CALL histwrite_phy(o_flx_co2_land_cor, fco2_land_cor)
[3550]2547           CALL histwrite_phy(o_flx_co2_ff,    fco2_ff)
2548           CALL histwrite_phy(o_flx_co2_bb,    fco2_bb)
[3125]2549
[4170]2550         ELSE IF (ANY(types_trac=='lmdz') .OR. ANY(types_trac=='coag')) THEN
[4071]2551           itr = 0
[4056]2552           DO iq = 1, nqtot
[4071]2553             IF(.NOT.tracers(iq)%isInPhysics) CYCLE
[4170]2554             itr = itr + 1
2555!            write(*,*) 'phys_output_write_mod 2337: itr=',itr
[3865]2556             !--3D fields
[4170]2557             CALL histwrite_phy(o_trac(itr), tr_seri(:,:,itr))
[4056]2558             CALL histwrite_phy(o_dtr_vdf(itr),d_tr_cl(:,:,itr))
2559             CALL histwrite_phy(o_dtr_the(itr),d_tr_th(:,:,itr))
2560             CALL histwrite_phy(o_dtr_con(itr),d_tr_cv(:,:,itr))
[4170]2561             CALL histwrite_phy(o_dtr_lessi_impa(itr),d_tr_lessi_impa(:,:,itr))
2562             CALL histwrite_phy(o_dtr_lessi_nucl(itr),d_tr_lessi_nucl(:,:,itr))
2563             CALL histwrite_phy(o_dtr_insc(itr),d_tr_insc(:,:,itr))
2564             CALL histwrite_phy(o_dtr_bcscav(itr),d_tr_bcscav(:,:,itr))
2565             CALL histwrite_phy(o_dtr_evapls(itr),d_tr_evapls(:,:,itr))
2566             CALL histwrite_phy(o_dtr_ls(itr),d_tr_ls(:,:,itr))
2567             CALL histwrite_phy(o_dtr_trsp(itr),d_tr_trsp(:,:,itr))
2568             CALL histwrite_phy(o_dtr_sscav(itr),d_tr_sscav(:,:,itr))
2569             CALL histwrite_phy(o_dtr_sat(itr),d_tr_sat(:,:,itr))
2570             CALL histwrite_phy(o_dtr_uscav(itr),d_tr_uscav(:,:,itr))
2571            !--2D fields
2572             CALL histwrite_phy(o_dtr_dry(itr), flux_tr_dry(:,itr))
[3865]2573             zx_tmp_fi2d=0.
2574             IF (vars_defined) THEN
2575                DO k=1,klev
[4056]2576                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*tr_seri(:,k,itr)
[3865]2577                ENDDO
2578             ENDIF
[4056]2579             CALL histwrite_phy(o_trac_cum(itr), zx_tmp_fi2d)
[3865]2580           ENDDO !--iq
[4170]2581         ENDIF   !--type_trac
[2973]2582       ENDIF   !(iflag_phytrac==1)
[1813]2583
[3815]2584       if (activate_ocean_skin >= 1) then
2585          CALL histwrite_phy(o_delta_sst, delta_sst)
2586          CALL histwrite_phy(o_delta_sal, delta_sal)
2587          CALL histwrite_phy(o_ds_ns, ds_ns)
2588          CALL histwrite_phy(o_dt_ns, dt_ns)
2589          CALL histwrite_phy(o_dter, dter)
2590          CALL histwrite_phy(o_dser, dser)
2591          CALL histwrite_phy(o_tkt, tkt)
2592          CALL histwrite_phy(o_tks, tks)
2593          CALL histwrite_phy(o_taur, taur)
2594          CALL histwrite_phy(o_sss, sss)
2595       end if
2596
[4056]2597#ifdef ISO
[4143]2598    do ixt=1,ntiso
[4056]2599!        write(*,*) 'ixt'
2600        IF (vars_defined) zx_tmp_fi2d(:) = xtrain_fall(ixt,:) + xtsnow_fall(ixt,:)
2601        CALL histwrite_phy(o_xtprecip(ixt), zx_tmp_fi2d)
2602
2603        IF (vars_defined) zx_tmp_fi2d(:) = xtrain_lsc(ixt,:) + xtsnow_lsc(ixt,:)
2604        CALL histwrite_phy(o_xtplul(ixt), zx_tmp_fi2d)
2605
2606        IF (vars_defined) zx_tmp_fi2d(:) = xtrain_con(ixt,:) + xtsnow_con(ixt,:)
2607        CALL histwrite_phy(o_xtpluc(ixt), zx_tmp_fi2d)
2608        CALL histwrite_phy(o_xtevap(ixt),   xtevap(ixt,:))
2609        CALL histwrite_phy(o_xtovap(ixt),  xt_seri(ixt,:,:))
2610        CALL histwrite_phy(o_xtoliq(ixt), xtl_seri(ixt,:,:))
2611
2612        IF (vars_defined) zx_tmp_fi3d(:,:)=xtl_seri(ixt,:,:)+xts_seri(ixt,:,:)
2613        CALL histwrite_phy(o_xtcond(ixt), zx_tmp_fi3d)
2614        CALL histwrite_phy(o_dxtdyn(ixt),   d_xt_dyn(ixt,:,:))
2615        CALL histwrite_phy(o_dxtldyn(ixt), d_xtl_dyn(ixt,:,:))
2616
2617        IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_con(ixt,:,:)/pdtphys
2618        CALL histwrite_phy(o_dxtcon(ixt), zx_tmp_fi3d)
2619
2620        IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_lsc(ixt,:,:)/pdtphys
2621        CALL histwrite_phy(o_dxtlsc(ixt), zx_tmp_fi3d)
2622
2623        IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_eva(ixt,:,:)/pdtphys
2624        CALL histwrite_phy(o_dxteva(ixt), zx_tmp_fi3d)
2625
2626        IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_vdf(ixt,:,:)/pdtphys
2627        CALL histwrite_phy(o_dxtvdf(ixt), zx_tmp_fi3d)
2628
2629        IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_ajsb(ixt,:,:)/pdtphys
2630        CALL histwrite_phy(o_dxtajs(ixt), zx_tmp_fi3d)
2631
2632        IF (vars_defined) zx_tmp_fi3d(:,:)=(d_xt_ajs(ixt,:,:)-d_xt_ajsb(ixt,:,:))/pdtphys
2633        CALL histwrite_phy(o_dxtthe(ixt), zx_tmp_fi3d)
2634
2635        IF (ok_qch4) THEN
2636          IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_ch4(ixt,:,:)/pdtphys
2637          CALL histwrite_phy(o_dxtch4(ixt), zx_tmp_fi3d)
2638        END IF
2639
2640        IF (ixt == iso_HTO) THEN
2641          IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_prod_nucl(ixt,:,:)/pdtphys
2642          CALL histwrite_phy(o_dxtprod_nucl(ixt), zx_tmp_fi3d)
2643
2644          IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_cosmo(ixt,:,:)/pdtphys
2645          CALL histwrite_phy(o_dxtcosmo(ixt), zx_tmp_fi3d)
2646
2647          IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_decroiss(ixt,:,:)/pdtphys
2648          CALL histwrite_phy(o_dxtdecroiss(ixt), zx_tmp_fi3d)
2649        END IF
2650
2651    !write(*,*) 'phys_output_write_mod 2531'
[4143]2652    enddo
[4056]2653#endif
2654
[2690]2655       IF (.NOT.vars_defined) THEN
[1898]2656          !$OMP MASTER
[2097]2657#ifndef CPP_IOIPSL_NO_OUTPUT
[1898]2658          DO iff=1,nfiles
2659             IF (clef_files(iff)) THEN
2660                CALL histend(nid_files(iff))
2661                ndex2d = 0
2662                ndex3d = 0
2663             ENDIF ! clef_files
2664          ENDDO !  iff
[1852]2665#endif
[1825]2666#ifdef CPP_XIOS
[1898]2667          !On finalise l'initialisation:
2668          CALL wxios_closedef()
[1825]2669#endif
[1898]2670          !$OMP END MASTER
2671          !$OMP BARRIER
2672          vars_defined = .TRUE.
[1821]2673
[2704]2674       ENDIF !--.NOT.vars_defined
2675
[2690]2676    ENDDO
[1821]2677
[2690]2678    IF (vars_defined) THEN
[1898]2679       ! On synchronise les fichiers pour IOIPSL
[2097]2680#ifndef CPP_IOIPSL_NO_OUTPUT
[1898]2681       !$OMP MASTER
2682       DO iff=1,nfiles
[1798]2683          IF (ok_sync .AND. clef_files(iff)) THEN
[1898]2684             CALL histsync(nid_files(iff))
[1798]2685          ENDIF
[1898]2686       END DO
2687       !$OMP END MASTER
[1852]2688#endif
[1798]2689    ENDIF
2690
[1898]2691  END SUBROUTINE phys_output_write
[1798]2692
[1898]2693END MODULE phys_output_write_mod
Note: See TracBrowser for help on using the repository browser.