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

Last change on this file since 3481 was 3425, checked in by Laurent Fairhead, 6 years ago

Followup to r3408 modifications for VolMIP
NL

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