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

Last change on this file since 4586 was 4575, checked in by Laurent Fairhead, 16 months ago

Sortir les profils de flux sensible et d'eau dus à la diffusion turbulente (déja calculés auparavant)
FC

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