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

Last change on this file since 3479 was 3479, checked in by Laurent Fairhead, 5 years ago

Integration of r3408 into the trunk
Modifications needed for VolMIP diagnostics

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