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

Last change on this file since 4525 was 4525, checked in by crisi, 14 months ago

adding isotopes in sub-surface outputs

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