source: LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/phys_output_write_mod.F90 @ 3616

Last change on this file since 3616 was 3616, checked in by oboucher, 4 years ago

Addition of diagnostics for the 100 meter wind

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