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

Last change on this file since 3490 was 3489, checked in by musat, 5 years ago

Ajout bornage a 2m

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