Changeset 1898


Ignore:
Timestamp:
Oct 31, 2013, 5:05:33 PM (11 years ago)
Author:
lguez
Message:

Indented the file.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90

    r1897 r1898  
    44MODULE phys_output_write_mod
    55
    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
    9 
    10 
    11 ! Author: Abderrahmane IDELKADI (original include file)
    12 ! Author: Laurent FAIRHEAD (transformation to module/subroutine)
    13 ! Author: Ulysse GERARD (effective implementation)
    14 
    15 
    16    CONTAINS
    17      
    18 ! ug Routine pour définir (los du premier passageà) ET sortir les variables
    19     SUBROUTINE phys_output_write(itap, pdtphys, paprs, pphis, &
    20    &                  pplay, lmax_th, aerosol_couple,         &
    21    &                  ok_ade, ok_aie, ivap, new_aod, ok_sync, &
    22    &                  ptconv, read_climoz, clevSTD, freq_moyNMC, ptconvth, &
    23    &                  d_t, qx, d_qx, zmasse, flag_aerosol_strat)
    24 
    25 ! This subroutine does the actual writing of diagnostics that were
    26 ! defined and initialised in phys_output_mod.F90
     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
     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 (los 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, ivap, new_aod, ok_sync, &
     20       ptconv, read_climoz, clevSTD, freq_moyNMC, ptconvth, &
     21       d_t, qx, d_qx, zmasse, flag_aerosol_strat)
     22
     23    ! This subroutine does the actual writing of diagnostics that were
     24    ! defined and initialised in phys_output_mod.F90
    2725
    2826    USE dimphy, only: klon, klev, klevp1
    2927    USE control_mod, only: day_step, iphysiq
    3028    USE phys_output_ctrlout_mod, only: o_phis, o_aire, is_ter, is_lic, is_oce, &
    31                                        is_ave, is_sic, o_contfracATM, o_contfracOR, &
    32                                        o_aireTER, o_flat, o_slp, o_tsol, &
    33                                        o_t2m, o_t2m_min, o_t2m_max, &
    34                                        o_q2m, o_ustar, o_u10m, o_v10m, &
    35                                        o_wind10m, o_wind10max, o_sicf, &
    36                                        o_psol, o_mass, o_qsurf, o_qsol, &
    37                                        o_precip, o_ndayrain, o_plul, o_pluc, &
    38                                        o_snow, o_msnow, o_fsnow, o_evap, &
    39                                        o_tops, o_tops0, o_topl, o_topl0, &
    40                                        o_SWupTOA, o_SWupTOAclr, o_SWdnTOA, &
    41                                        o_SWdnTOAclr, o_nettop, o_SWup200, &
    42                                        o_SWup200clr, o_SWdn200, o_SWdn200clr, &
    43                                        o_LWup200, o_LWup200clr, o_LWdn200, &
    44                                        o_LWdn200clr, o_sols, o_sols0, &
    45                                        o_soll, o_radsol, o_soll0, o_SWupSFC, &
    46                                        o_SWupSFCclr, o_SWdnSFC, o_SWdnSFCclr, &
    47                                        o_LWupSFC, o_LWdnSFC, o_LWupSFCclr, &
    48                                        o_LWdnSFCclr, o_bils, o_bils_diss, &
    49                                        o_bils_ec, o_bils_tke, o_bils_kinetic, &
    50                                        o_bils_latent, o_bils_enthalp, o_sens, &
    51                                        o_fder, o_ffonte, o_fqcalving, o_fqfonte, &
    52                                        o_taux, o_tauy, o_snowsrf, o_qsnow, &
    53                                        o_snowhgt, o_toice, o_sissnow, o_runoff, &
    54                                        o_albslw3, o_pourc_srf, o_fract_srf, &
    55                                        o_taux_srf, o_tauy_srf, o_tsol_srf, &
    56                                        o_evappot_srf, o_ustar_srf, o_u10m_srf, &
    57                                        o_v10m_srf, o_t2m_srf, o_evap_srf, &
    58                                        o_sens_srf, o_lat_srf, o_flw_srf, &
    59                                        o_fsw_srf, o_wbils_srf, o_wbilo_srf, &
    60                                        o_tke_srf, o_tke_max_srf, o_wstar, &
    61                                        o_cdrm, o_cdrh, o_cldl, o_cldm, o_cldh, &
    62                                        o_cldt, o_cldq, o_lwp, o_iwp, o_ue, &
    63                                        o_ve, o_uq, o_vq, o_cape, o_pbase, &
    64                                        o_ptop, o_fbase, o_plcl, o_plfc, &
    65                                        o_wbeff, o_cape_max, o_upwd, o_Ma, &
    66                                        o_dnwd, o_dnwd0, o_ftime_con, o_mc, &
    67                                        o_prw, o_s_pblh, o_s_pblt, o_s_lcl, &
    68                                        o_s_therm, o_uSTDlevs, o_vSTDlevs, &
    69                                        o_wSTDlevs, o_zSTDlevs, o_qSTDlevs, &
    70                                        o_tSTDlevs, epsfra, o_t_oce_sic, &
    71                                        o_ale_bl, o_alp_bl, o_ale_wk, o_alp_wk, &
    72                                        o_ale, o_alp, o_cin, o_WAPE, o_wake_h, &
    73                                        o_wake_s, o_wake_deltat, o_wake_deltaq, &
    74                                        o_wake_omg, o_dtwak, o_dqwak, o_Vprecip, &
    75                                        o_ftd, o_fqd, o_wdtrainA, o_wdtrainM, &
    76                                        o_n2, o_s2, o_proba_notrig, &
    77                                        o_random_notrig, o_ale_bl_stat, &
    78                                        o_ale_bl_trig, o_alp_bl_det, &
    79                                        o_alp_bl_fluct_m, o_alp_bl_fluct_tke, &
    80                                        o_alp_bl_conv, o_alp_bl_stat, o_slab_bils, &
    81                                        o_weakinv, o_dthmin, o_cldtau, &
    82                                        o_cldemi, o_pr_con_l, o_pr_con_i, &
    83                                        o_pr_lsc_l, o_pr_lsc_i, o_re, o_fl, &
    84                                        o_rh2m, o_rh2m_min, o_rh2m_max, &
    85                                        o_qsat2m, o_tpot, o_tpote, o_SWnetOR, &
    86                                        o_SWdownOR, o_LWdownOR, o_snowl, &
    87                                        o_solldown, o_dtsvdfo, o_dtsvdft, &
    88                                        o_dtsvdfg, o_dtsvdfi, o_rugs, o_od550aer, &
    89                                        o_od865aer, o_absvisaer, o_od550lt1aer, &
    90                                        o_sconcso4, o_sconcoa, o_sconcbc, &
    91                                        o_sconcss, o_sconcdust, o_concso4, &
    92                                        o_concoa, o_concbc, o_concss, o_concdust, &
    93                                        o_loadso4, o_loadoa, o_loadbc, o_loadss, &
    94                                        o_loaddust, o_tausumaero, o_topswad, &
    95                                        o_topswad0, o_solswad, o_solswad0, &
    96                                        o_swtoaas_nat, o_swsrfas_nat, &
    97                                        o_swtoacs_nat, o_swtoaas_ant, &
    98                                        o_swsrfas_ant, o_swtoacs_ant, &
    99                                        o_swsrfcs_ant, o_swtoacf_nat, &
    100                                        o_swsrfcf_nat, o_swtoacf_ant, &
    101                                        o_swsrfcs_nat, o_swsrfcf_ant, &
    102                                        o_swtoacf_zero, o_swsrfcf_zero, &
    103                                        o_topswai, o_solswai, o_scdnc, &
    104                                        o_cldncl, o_reffclws, o_reffclwc, &
    105                                        o_cldnvi, o_lcc, o_lcc3d, o_lcc3dcon, &
    106                                        o_lcc3dstra, o_reffclwtop, o_ec550aer, &
    107                                        o_lwcon, o_iwcon, o_temp, o_theta, &
    108                                        o_ovapinit, o_ovap, o_oliq, o_geop, &
    109                                        o_vitu, o_vitv, o_vitw, o_pres, o_paprs, &
    110                                        o_zfull, o_zhalf, o_rneb, o_rnebcon, &
    111                                        o_rnebls, o_rhum, o_ozone, o_ozone_light, &
    112                                        o_dtphy, o_dqphy, o_albe_srf, o_rugs_srf, &
    113                                        o_ages_srf, o_alb1, o_alb2, o_tke, &
    114                                        o_tke_max, o_kz, o_kz_max, o_clwcon, &
    115                                        o_dtdyn, o_dqdyn, o_dudyn, o_dvdyn, &
    116                                        o_dtcon, o_tntc, o_ducon, o_dvcon, &
    117                                        o_dqcon, o_tnhusc, o_tnhusc, o_dtlsc, &
    118                                        o_dtlschr, o_dqlsc, o_beta_prec, &
    119                                        o_dtlscth, o_dtlscst, o_dqlscth, &
    120                                        o_dqlscst, o_plulth, o_plulst, &
    121                                        o_ptconvth, o_lmaxth, o_dtvdf, &
    122                                        o_dtdis, o_dqvdf, o_dteva, o_dqeva, &
    123                                        o_ptconv, o_ratqs, o_dtthe, o_ftime_th, &
    124                                        o_f_th, o_e_th, o_w_th, o_q_th, &
    125                                        o_a_th, o_d_th, o_f0_th, o_zmax_th, &
    126                                        o_dqthe, o_dtajs, o_dqajs, o_dtswr, &
    127                                        o_dtsw0, o_dtlwr, o_dtlw0, o_dtec, &
    128                                        o_duvdf, o_dvvdf, o_duoro, o_dvoro, &
    129                                        o_dtoro, o_dulif, o_dvlif, o_dtlif, &
    130                                        o_duhin, o_dvhin, o_dthin, o_rsu, &
    131                                        o_rsd, o_rlu, o_rld, o_rsucs, o_rsdcs, &
    132                                        o_rlucs, o_rldcs, o_tnt, o_tntr, &
    133                                        o_tntscpbl, o_tnhus, o_tnhusscpbl, &
    134                                        o_evu, o_h2o, o_mcd, o_dmc, o_ref_liq, &
    135                                        o_ref_ice, o_rsut4co2, o_rlut4co2, &
    136                                        o_rsutcs4co2, o_rlutcs4co2, o_rsu4co2, &
    137                                        o_rlu4co2, o_rsucs4co2, o_rlucs4co2, &
    138                                        o_rsd4co2, o_rld4co2, o_rsdcs4co2, &
    139                                        o_rldcs4co2, o_tnondef, o_ta, o_zg, &
    140                                        o_hus, o_hur, o_ua, o_va, o_wap, &
    141                                        o_psbg, o_tro3, o_tro3_daylight, &
    142                                        o_uxv, o_vxq, o_vxT, o_wxq, o_vxphi, &
    143                                        o_wxT, o_uxu, o_vxv, o_TxT, o_trac, &
    144                                        o_dtr_vdf, o_dtr_the, o_dtr_con, &
    145                                        o_dtr_lessi_impa, o_dtr_lessi_nucl, &
    146                                        o_dtr_insc, o_dtr_bcscav, o_dtr_evapls, &
    147                                        o_dtr_ls, o_dtr_trsp, o_dtr_sscav, &
    148                                        o_dtr_sat, o_dtr_uscav, o_trac_cum
     29         is_ave, is_sic, o_contfracATM, o_contfracOR, &
     30         o_aireTER, o_flat, o_slp, o_tsol, &
     31         o_t2m, o_t2m_min, o_t2m_max, &
     32         o_q2m, o_ustar, o_u10m, o_v10m, &
     33         o_wind10m, o_wind10max, o_sicf, &
     34         o_psol, o_mass, o_qsurf, o_qsol, &
     35         o_precip, o_ndayrain, o_plul, o_pluc, &
     36         o_snow, o_msnow, o_fsnow, o_evap, &
     37         o_tops, o_tops0, o_topl, o_topl0, &
     38         o_SWupTOA, o_SWupTOAclr, o_SWdnTOA, &
     39         o_SWdnTOAclr, o_nettop, o_SWup200, &
     40         o_SWup200clr, o_SWdn200, o_SWdn200clr, &
     41         o_LWup200, o_LWup200clr, o_LWdn200, &
     42         o_LWdn200clr, o_sols, o_sols0, &
     43         o_soll, o_radsol, o_soll0, o_SWupSFC, &
     44         o_SWupSFCclr, o_SWdnSFC, o_SWdnSFCclr, &
     45         o_LWupSFC, o_LWdnSFC, o_LWupSFCclr, &
     46         o_LWdnSFCclr, o_bils, o_bils_diss, &
     47         o_bils_ec, o_bils_tke, o_bils_kinetic, &
     48         o_bils_latent, o_bils_enthalp, o_sens, &
     49         o_fder, o_ffonte, o_fqcalving, o_fqfonte, &
     50         o_taux, o_tauy, o_snowsrf, o_qsnow, &
     51         o_snowhgt, o_toice, o_sissnow, o_runoff, &
     52         o_albslw3, o_pourc_srf, o_fract_srf, &
     53         o_taux_srf, o_tauy_srf, o_tsol_srf, &
     54         o_evappot_srf, o_ustar_srf, o_u10m_srf, &
     55         o_v10m_srf, o_t2m_srf, o_evap_srf, &
     56         o_sens_srf, o_lat_srf, o_flw_srf, &
     57         o_fsw_srf, o_wbils_srf, o_wbilo_srf, &
     58         o_tke_srf, o_tke_max_srf, o_wstar, &
     59         o_cdrm, o_cdrh, o_cldl, o_cldm, o_cldh, &
     60         o_cldt, o_cldq, o_lwp, o_iwp, o_ue, &
     61         o_ve, o_uq, o_vq, o_cape, o_pbase, &
     62         o_ptop, o_fbase, o_plcl, o_plfc, &
     63         o_wbeff, o_cape_max, o_upwd, o_Ma, &
     64         o_dnwd, o_dnwd0, o_ftime_con, o_mc, &
     65         o_prw, o_s_pblh, o_s_pblt, o_s_lcl, &
     66         o_s_therm, o_uSTDlevs, o_vSTDlevs, &
     67         o_wSTDlevs, o_zSTDlevs, o_qSTDlevs, &
     68         o_tSTDlevs, epsfra, o_t_oce_sic, &
     69         o_ale_bl, o_alp_bl, o_ale_wk, o_alp_wk, &
     70         o_ale, o_alp, o_cin, o_WAPE, o_wake_h, &
     71         o_wake_s, o_wake_deltat, o_wake_deltaq, &
     72         o_wake_omg, o_dtwak, o_dqwak, o_Vprecip, &
     73         o_ftd, o_fqd, o_wdtrainA, o_wdtrainM, &
     74         o_n2, o_s2, o_proba_notrig, &
     75         o_random_notrig, o_ale_bl_stat, &
     76         o_ale_bl_trig, o_alp_bl_det, &
     77         o_alp_bl_fluct_m, o_alp_bl_fluct_tke, &
     78         o_alp_bl_conv, o_alp_bl_stat, o_slab_bils, &
     79         o_weakinv, o_dthmin, o_cldtau, &
     80         o_cldemi, o_pr_con_l, o_pr_con_i, &
     81         o_pr_lsc_l, o_pr_lsc_i, o_re, o_fl, &
     82         o_rh2m, o_rh2m_min, o_rh2m_max, &
     83         o_qsat2m, o_tpot, o_tpote, o_SWnetOR, &
     84         o_SWdownOR, o_LWdownOR, o_snowl, &
     85         o_solldown, o_dtsvdfo, o_dtsvdft, &
     86         o_dtsvdfg, o_dtsvdfi, o_rugs, o_od550aer, &
     87         o_od865aer, o_absvisaer, o_od550lt1aer, &
     88         o_sconcso4, o_sconcoa, o_sconcbc, &
     89         o_sconcss, o_sconcdust, o_concso4, &
     90         o_concoa, o_concbc, o_concss, o_concdust, &
     91         o_loadso4, o_loadoa, o_loadbc, o_loadss, &
     92         o_loaddust, o_tausumaero, o_topswad, &
     93         o_topswad0, o_solswad, o_solswad0, &
     94         o_swtoaas_nat, o_swsrfas_nat, &
     95         o_swtoacs_nat, o_swtoaas_ant, &
     96         o_swsrfas_ant, o_swtoacs_ant, &
     97         o_swsrfcs_ant, o_swtoacf_nat, &
     98         o_swsrfcf_nat, o_swtoacf_ant, &
     99         o_swsrfcs_nat, o_swsrfcf_ant, &
     100         o_swtoacf_zero, o_swsrfcf_zero, &
     101         o_topswai, o_solswai, o_scdnc, &
     102         o_cldncl, o_reffclws, o_reffclwc, &
     103         o_cldnvi, o_lcc, o_lcc3d, o_lcc3dcon, &
     104         o_lcc3dstra, o_reffclwtop, o_ec550aer, &
     105         o_lwcon, o_iwcon, o_temp, o_theta, &
     106         o_ovapinit, o_ovap, o_oliq, o_geop, &
     107         o_vitu, o_vitv, o_vitw, o_pres, o_paprs, &
     108         o_zfull, o_zhalf, o_rneb, o_rnebcon, &
     109         o_rnebls, o_rhum, o_ozone, o_ozone_light, &
     110         o_dtphy, o_dqphy, o_albe_srf, o_rugs_srf, &
     111         o_ages_srf, o_alb1, o_alb2, o_tke, &
     112         o_tke_max, o_kz, o_kz_max, o_clwcon, &
     113         o_dtdyn, o_dqdyn, o_dudyn, o_dvdyn, &
     114         o_dtcon, o_tntc, o_ducon, o_dvcon, &
     115         o_dqcon, o_tnhusc, o_tnhusc, o_dtlsc, &
     116         o_dtlschr, o_dqlsc, o_beta_prec, &
     117         o_dtlscth, o_dtlscst, o_dqlscth, &
     118         o_dqlscst, o_plulth, o_plulst, &
     119         o_ptconvth, o_lmaxth, o_dtvdf, &
     120         o_dtdis, o_dqvdf, o_dteva, o_dqeva, &
     121         o_ptconv, o_ratqs, o_dtthe, o_ftime_th, &
     122         o_f_th, o_e_th, o_w_th, o_q_th, &
     123         o_a_th, o_d_th, o_f0_th, o_zmax_th, &
     124         o_dqthe, o_dtajs, o_dqajs, o_dtswr, &
     125         o_dtsw0, o_dtlwr, o_dtlw0, o_dtec, &
     126         o_duvdf, o_dvvdf, o_duoro, o_dvoro, &
     127         o_dtoro, o_dulif, o_dvlif, o_dtlif, &
     128         o_duhin, o_dvhin, o_dthin, o_rsu, &
     129         o_rsd, o_rlu, o_rld, o_rsucs, o_rsdcs, &
     130         o_rlucs, o_rldcs, o_tnt, o_tntr, &
     131         o_tntscpbl, o_tnhus, o_tnhusscpbl, &
     132         o_evu, o_h2o, o_mcd, o_dmc, o_ref_liq, &
     133         o_ref_ice, o_rsut4co2, o_rlut4co2, &
     134         o_rsutcs4co2, o_rlutcs4co2, o_rsu4co2, &
     135         o_rlu4co2, o_rsucs4co2, o_rlucs4co2, &
     136         o_rsd4co2, o_rld4co2, o_rsdcs4co2, &
     137         o_rldcs4co2, o_tnondef, o_ta, o_zg, &
     138         o_hus, o_hur, o_ua, o_va, o_wap, &
     139         o_psbg, o_tro3, o_tro3_daylight, &
     140         o_uxv, o_vxq, o_vxT, o_wxq, o_vxphi, &
     141         o_wxT, o_uxu, o_vxv, o_TxT, o_trac, &
     142         o_dtr_vdf, o_dtr_the, o_dtr_con, &
     143         o_dtr_lessi_impa, o_dtr_lessi_nucl, &
     144         o_dtr_insc, o_dtr_bcscav, o_dtr_evapls, &
     145         o_dtr_ls, o_dtr_trsp, o_dtr_sscav, &
     146         o_dtr_sat, o_dtr_uscav, o_trac_cum
    149147
    150148    USE phys_state_var_mod, only: pctsrf, paire_ter, rain_fall, snow_fall, &
    151                                   nday_rain, rain_con, snow_con, &
    152                                   topsw, toplw, toplw0, swup, swdn, &
    153                                   topsw0, swup0, swdn0, SWup200, SWup200clr, &
    154                                   SWdn200, SWdn200clr, LWup200, LWup200clr, &
    155                                   LWdn200, LWdn200clr, solsw, solsw0, sollw, &
    156                                   radsol, sollw0, sollwdown, sollw, &
    157                                   sollwdownclr, lwdn0, ftsol, ustar, u10m, &
    158                                   v10m, pbl_tke, wstar, cape, ema_pcb, ema_pct, &
    159                                   ema_cbmf, Ma, fm_therm, ale_bl, alp_bl, ale, &
    160                                   alp, cin, wake_pe, wake_s, wake_deltat, &
    161                                   wake_deltaq, ftd, fqd, ale_bl_trig, albsol1, &
    162                                   rnebcon, wo, falb1, albsol2, coefh, clwcon0, &
    163                                   ratqs, entr_therm, zqasc, detr_therm, f0, heat, &
    164                                   heat0, cool, cool0, lwup, lwdn, lwup0, coefm, &
    165                                   swupp, lwupp, swup0p, lwup0p, swdnp, lwdnp, &
    166                                   swdn0p, lwdn0p, tnondef, O3sumSTD, uvsumSTD, &
    167                                   vqsumSTD, vTsumSTD, O3daysumSTD, wqsumSTD, &
    168                                   vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, &
    169                                   T2sumSTD, nlevSTD
    170                                  
     149         nday_rain, rain_con, snow_con, &
     150         topsw, toplw, toplw0, swup, swdn, &
     151         topsw0, swup0, swdn0, SWup200, SWup200clr, &
     152         SWdn200, SWdn200clr, LWup200, LWup200clr, &
     153         LWdn200, LWdn200clr, solsw, solsw0, sollw, &
     154         radsol, sollw0, sollwdown, sollw, &
     155         sollwdownclr, lwdn0, ftsol, ustar, u10m, &
     156         v10m, pbl_tke, wstar, cape, ema_pcb, ema_pct, &
     157         ema_cbmf, Ma, fm_therm, ale_bl, alp_bl, ale, &
     158         alp, cin, wake_pe, wake_s, wake_deltat, &
     159         wake_deltaq, ftd, fqd, ale_bl_trig, albsol1, &
     160         rnebcon, wo, falb1, albsol2, coefh, clwcon0, &
     161         ratqs, entr_therm, zqasc, detr_therm, f0, heat, &
     162         heat0, cool, cool0, lwup, lwdn, lwup0, coefm, &
     163         swupp, lwupp, swup0p, lwup0p, swdnp, lwdnp, &
     164         swdn0p, lwdn0p, tnondef, O3sumSTD, uvsumSTD, &
     165         vqsumSTD, vTsumSTD, O3daysumSTD, wqsumSTD, &
     166         vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, &
     167         T2sumSTD, nlevSTD
     168
    171169    USE phys_local_var_mod, only: zxfluxlat, slp, zxtsol, zt2m, &
    172                                   zu10m, zv10m, zq2m, zustar, zxqsurf, qsol, &
    173                                   rain_lsc, snow_lsc, evap, bils, sens, fder, &
    174                                   zxffonte, zxfqcalving, zxfqfonte, fluxu, &
    175                                   fluxv, zxsnow, qsnow, snowhgt, to_ice, &
    176                                   sissnow, runoff, albsol3_lic, evap_pot, &
    177                                   t2m, fevap, fluxt, fluxlat, fsollw, fsolsw, &
    178                                   wfbils, wfbilo, cdragm, cdragh, cldl, cldm, &
    179                                   cldh, cldt, cldq, flwp, fiwp, ue, ve, uq, vq, &
    180                                   plcl, plfc, wbeff, upwd, dnwd, dnwd0, prw, &
    181                                   s_pblh, s_pblt, s_lcl, s_therm, uwriteSTD, &
    182                                   vwriteSTD, wwriteSTD, phiwriteSTD, qwriteSTD, &
    183                                   twriteSTD, ale_wake, alp_wake, wake_h, &
    184                                   wake_omg, d_t_wake, d_q_wake, Vprecip, &
    185                                   wdtrainA, wdtrainM, n2, s2, proba_notrig, &
    186                                   random_notrig, ale_bl_stat, &
    187                                   alp_bl_det, alp_bl_fluct_m, alp_bl_conv, &
    188                                   alp_bl_stat, alp_bl_fluct_tke, slab_wfbils, &
    189                                   weak_inversion, dthmin, cldtau, cldemi, &
    190                                   pmflxr, pmflxs, prfl, psfl, re, fl, rh2m, &
    191                                   qsat2m, tpote, tpot, d_ts, zxrugs, od550aer, &
    192                                   od865aer, absvisaer, od550lt1aer, sconcso4, &
    193                                   sconcoa, sconcbc, sconcss, sconcdust, concso4, &
    194                                   concoa, concbc, concss, concdust, loadso4, &
    195                                   loadoa, loadbc, loadss, loaddust, tausum_aero, &
    196                                   topswad_aero, topswad0_aero, solswad_aero, &
    197                                   solswad0_aero, topsw_aero, solsw_aero, &
    198                                   topsw0_aero, solsw0_aero, topswcf_aero, &
    199                                   solswcf_aero, topswai_aero, solswai_aero, &
    200                                   scdnc, cldncl, reffclws, reffclwc, cldnvi, &
    201                                   lcc, lcc3d, lcc3dcon, lcc3dstra, reffclwtop, &
    202                                   ec550aer, flwc, fiwc, t_seri, theta, q_seri, &
    203                                   ql_seri, zphi, u_seri, v_seri, omega, cldfra, &
    204                                   rneb, zx_rh, frugs, agesno, d_t_dyn, d_q_dyn, &
    205                                   d_u_dyn, d_v_dyn, d_t_con, d_t_ajsb, d_t_ajs, &
    206                                   d_u_con, d_v_con, d_q_con, d_q_ajs, d_t_lsc, &
    207                                   d_t_eva, d_q_lsc, beta_prec, d_t_lscth, &
    208                                   d_t_lscst, d_q_lscth, d_q_lscst, plul_th, &
    209                                   plul_st, d_t_vdf, d_t_diss, d_q_vdf, d_q_eva, &
    210                                   zw2, fraca, zmax_th, d_q_ajsb, d_t_ec, d_u_vdf, &
    211                                   d_v_vdf, d_u_oro, d_v_oro, d_t_oro, d_u_lif, &
    212                                   d_v_lif, d_t_lif, d_u_hin, d_v_hin, d_t_hin, &
    213                                   pmfd, pmfu, ref_liq, ref_ice, rhwriteSTD
    214    
     170         zu10m, zv10m, zq2m, zustar, zxqsurf, qsol, &
     171         rain_lsc, snow_lsc, evap, bils, sens, fder, &
     172         zxffonte, zxfqcalving, zxfqfonte, fluxu, &
     173         fluxv, zxsnow, qsnow, snowhgt, to_ice, &
     174         sissnow, runoff, albsol3_lic, evap_pot, &
     175         t2m, fevap, fluxt, fluxlat, fsollw, fsolsw, &
     176         wfbils, wfbilo, cdragm, cdragh, cldl, cldm, &
     177         cldh, cldt, cldq, flwp, fiwp, ue, ve, uq, vq, &
     178         plcl, plfc, wbeff, upwd, dnwd, dnwd0, prw, &
     179         s_pblh, s_pblt, s_lcl, s_therm, uwriteSTD, &
     180         vwriteSTD, wwriteSTD, phiwriteSTD, qwriteSTD, &
     181         twriteSTD, ale_wake, alp_wake, wake_h, &
     182         wake_omg, d_t_wake, d_q_wake, Vprecip, &
     183         wdtrainA, wdtrainM, n2, s2, proba_notrig, &
     184         random_notrig, ale_bl_stat, &
     185         alp_bl_det, alp_bl_fluct_m, alp_bl_conv, &
     186         alp_bl_stat, alp_bl_fluct_tke, slab_wfbils, &
     187         weak_inversion, dthmin, cldtau, cldemi, &
     188         pmflxr, pmflxs, prfl, psfl, re, fl, rh2m, &
     189         qsat2m, tpote, tpot, d_ts, zxrugs, od550aer, &
     190         od865aer, absvisaer, od550lt1aer, sconcso4, &
     191         sconcoa, sconcbc, sconcss, sconcdust, concso4, &
     192         concoa, concbc, concss, concdust, loadso4, &
     193         loadoa, loadbc, loadss, loaddust, tausum_aero, &
     194         topswad_aero, topswad0_aero, solswad_aero, &
     195         solswad0_aero, topsw_aero, solsw_aero, &
     196         topsw0_aero, solsw0_aero, topswcf_aero, &
     197         solswcf_aero, topswai_aero, solswai_aero, &
     198         scdnc, cldncl, reffclws, reffclwc, cldnvi, &
     199         lcc, lcc3d, lcc3dcon, lcc3dstra, reffclwtop, &
     200         ec550aer, flwc, fiwc, t_seri, theta, q_seri, &
     201         ql_seri, zphi, u_seri, v_seri, omega, cldfra, &
     202         rneb, zx_rh, frugs, agesno, d_t_dyn, d_q_dyn, &
     203         d_u_dyn, d_v_dyn, d_t_con, d_t_ajsb, d_t_ajs, &
     204         d_u_con, d_v_con, d_q_con, d_q_ajs, d_t_lsc, &
     205         d_t_eva, d_q_lsc, beta_prec, d_t_lscth, &
     206         d_t_lscst, d_q_lscth, d_q_lscst, plul_th, &
     207         plul_st, d_t_vdf, d_t_diss, d_q_vdf, d_q_eva, &
     208         zw2, fraca, zmax_th, d_q_ajsb, d_t_ec, d_u_vdf, &
     209         d_v_vdf, d_u_oro, d_v_oro, d_t_oro, d_u_lif, &
     210         d_v_lif, d_t_lif, d_u_hin, d_v_hin, d_t_hin, &
     211         pmfd, pmfu, ref_liq, ref_ice, rhwriteSTD
     212
    215213    USE phys_output_var_mod, only: vars_defined, snow_o, zfra_o, bils_diss, &
    216                                    bils_ec, bils_tke, bils_kinetic, bils_latent, &
    217                                    bils_enthalp, itau_con, nfiles, clef_files, &
    218                                    nid_files
     214         bils_ec, bils_tke, bils_kinetic, bils_latent, &
     215         bils_enthalp, itau_con, nfiles, clef_files, &
     216         nid_files
    219217    USE indice_sol_mod, only: nbsrf
    220218    USE infotrac, only: nqtot
     
    228226#ifdef CPP_XIOS
    229227    ! ug Pour les sorties XIOS
    230         USE wxios, only: wxios_update_calendar, wxios_closedef
     228    USE wxios, only: wxios_update_calendar, wxios_closedef
    231229#endif
    232230
     
    241239    include "iniprint.h"
    242240
    243 ! Input
     241    ! Input
    244242    INTEGER :: itap, ivap, read_climoz
    245243    INTEGER, DIMENSION(klon) :: lmax_th
     
    257255    REAL, DIMENSION(3) :: freq_moyNMC
    258256
    259 ! Local
     257    ! Local
    260258    INTEGER, PARAMETER :: jjmp1=jjm+1-1/jjm
    261259    INTEGER :: itau_w
     
    270268    REAL, PARAMETER :: missing_val=nf90_fill_real
    271269
    272      ! On calcul le nouveau tau:
    273      itau_w = itau_phy + itap + start_time * day_step / iphysiq
    274      ! On le donne à iophy pour que les histwrite y aient accès:
    275      CALL set_itau_iophy(itau_w)
    276    
     270    ! On calcul le nouveau tau:
     271    itau_w = itau_phy + itap + start_time * day_step / iphysiq
     272    ! On le donne à iophy pour que les histwrite y aient accès:
     273    CALL set_itau_iophy(itau_w)
     274
    277275    IF(.NOT.vars_defined) THEN
    278         iinitend = 2
     276       iinitend = 2
    279277    ELSE
    280         iinitend = 1
     278       iinitend = 1
    281279    ENDIF
    282    
    283 ! ug la boucle qui suit ne sert qu'une fois, pour l'initialisation, sinon il n'y a toujours qu'un seul passage:
    284 DO iinit=1, iinitend
     280
     281    ! ug la boucle qui suit ne sert qu'une fois, pour l'initialisation, sinon il n'y a toujours qu'un seul passage:
     282    DO iinit=1, iinitend
    285283#ifdef CPP_XIOS
    286 !$OMP MASTER
    287 IF (vars_defined) THEN
    288    if (prt_level >= 10) then
    289      write(lunout,*)"phys_output_write: call wxios_update_calendar, itau_w=",itau_w
    290    endif
    291    CALL wxios_update_calendar(itau_w)
    292 END IF
    293 !$OMP END MASTER
    294 !$OMP BARRIER
     284       !$OMP MASTER
     285       IF (vars_defined) THEN
     286          if (prt_level >= 10) then
     287             write(lunout,*)"phys_output_write: call wxios_update_calendar, itau_w=",itau_w
     288          endif
     289          CALL wxios_update_calendar(itau_w)
     290       END IF
     291       !$OMP END MASTER
     292       !$OMP BARRIER
    295293#endif
    296 ! On procède à l'écriture ou à la définition des nombreuses variables:
     294       ! On procède à l'écriture ou à la définition des nombreuses variables:
    297295!!! Champs 1D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    298       CALL histwrite_phy(o_phis, pphis)
    299       CALL histwrite_phy(o_aire, airephy)
    300 
    301 IF (vars_defined) THEN
    302       DO i=1, klon
    303        zx_tmp_fi2d(i)=pctsrf(i,is_ter)+pctsrf(i,is_lic)
    304       ENDDO
    305 ENDIF
    306 
    307       CALL histwrite_phy(o_contfracATM, zx_tmp_fi2d)
    308       CALL histwrite_phy(o_contfracOR, pctsrf(:,is_ter))
    309       CALL histwrite_phy(o_aireTER, paire_ter)
     296       CALL histwrite_phy(o_phis, pphis)
     297       CALL histwrite_phy(o_aire, airephy)
     298
     299       IF (vars_defined) THEN
     300          DO i=1, klon
     301             zx_tmp_fi2d(i)=pctsrf(i,is_ter)+pctsrf(i,is_lic)
     302          ENDDO
     303       ENDIF
     304
     305       CALL histwrite_phy(o_contfracATM, zx_tmp_fi2d)
     306       CALL histwrite_phy(o_contfracOR, pctsrf(:,is_ter))
     307       CALL histwrite_phy(o_aireTER, paire_ter)
    310308!!! Champs 2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    311       CALL histwrite_phy(o_flat, zxfluxlat)
    312       CALL histwrite_phy(o_slp, slp)
    313       CALL histwrite_phy(o_tsol, zxtsol)
    314       CALL histwrite_phy(o_t2m, zt2m)
    315       CALL histwrite_phy(o_t2m_min, zt2m)
    316       CALL histwrite_phy(o_t2m_max, zt2m)
    317 
    318 IF (vars_defined) THEN
    319       DO i=1, klon
    320        zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
    321       ENDDO
    322 ENDIF
    323       CALL histwrite_phy(o_wind10m, zx_tmp_fi2d)
    324 
    325 IF (vars_defined) THEN
    326       DO i=1, klon
    327        zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
    328       ENDDO
    329 ENDIF
    330       CALL histwrite_phy(o_wind10max, zx_tmp_fi2d)
    331 
    332 IF (vars_defined) THEN
    333       DO i = 1, klon
    334          zx_tmp_fi2d(i) = pctsrf(i,is_sic)
    335       ENDDO
    336 ENDIF
    337       CALL histwrite_phy(o_sicf, zx_tmp_fi2d)
    338       CALL histwrite_phy(o_q2m, zq2m)
    339       CALL histwrite_phy(o_ustar, zustar)
    340       CALL histwrite_phy(o_u10m, zu10m)
    341       CALL histwrite_phy(o_v10m, zv10m)
    342 
    343 IF (vars_defined) THEN
    344       DO i = 1, klon
    345          zx_tmp_fi2d(i) = paprs(i,1)
    346       ENDDO
    347 ENDIF
    348       CALL histwrite_phy(o_psol, zx_tmp_fi2d)
    349       CALL histwrite_phy(o_mass, zmasse)
    350       CALL histwrite_phy(o_qsurf, zxqsurf)
    351 
    352 IF (.NOT. ok_veget) THEN
    353       CALL histwrite_phy(o_qsol, qsol)
    354 ENDIF
    355 
    356 IF (vars_defined) THEN
    357        DO i = 1, klon
    358          zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
     309       CALL histwrite_phy(o_flat, zxfluxlat)
     310       CALL histwrite_phy(o_slp, slp)
     311       CALL histwrite_phy(o_tsol, zxtsol)
     312       CALL histwrite_phy(o_t2m, zt2m)
     313       CALL histwrite_phy(o_t2m_min, zt2m)
     314       CALL histwrite_phy(o_t2m_max, zt2m)
     315
     316       IF (vars_defined) THEN
     317          DO i=1, klon
     318             zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
     319          ENDDO
     320       ENDIF
     321       CALL histwrite_phy(o_wind10m, zx_tmp_fi2d)
     322
     323       IF (vars_defined) THEN
     324          DO i=1, klon
     325             zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
     326          ENDDO
     327       ENDIF
     328       CALL histwrite_phy(o_wind10max, zx_tmp_fi2d)
     329
     330       IF (vars_defined) THEN
     331          DO i = 1, klon
     332             zx_tmp_fi2d(i) = pctsrf(i,is_sic)
     333          ENDDO
     334       ENDIF
     335       CALL histwrite_phy(o_sicf, zx_tmp_fi2d)
     336       CALL histwrite_phy(o_q2m, zq2m)
     337       CALL histwrite_phy(o_ustar, zustar)
     338       CALL histwrite_phy(o_u10m, zu10m)
     339       CALL histwrite_phy(o_v10m, zv10m)
     340
     341       IF (vars_defined) THEN
     342          DO i = 1, klon
     343             zx_tmp_fi2d(i) = paprs(i,1)
     344          ENDDO
     345       ENDIF
     346       CALL histwrite_phy(o_psol, zx_tmp_fi2d)
     347       CALL histwrite_phy(o_mass, zmasse)
     348       CALL histwrite_phy(o_qsurf, zxqsurf)
     349
     350       IF (.NOT. ok_veget) THEN
     351          CALL histwrite_phy(o_qsol, qsol)
     352       ENDIF
     353
     354       IF (vars_defined) THEN
     355          DO i = 1, klon
     356             zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
     357          ENDDO
     358       ENDIF
     359
     360       CALL histwrite_phy(o_precip, zx_tmp_fi2d)
     361       CALL histwrite_phy(o_ndayrain, nday_rain)
     362
     363       IF (vars_defined) THEN
     364          DO i = 1, klon
     365             zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i)
     366          ENDDO
     367       ENDIF
     368       CALL histwrite_phy(o_plul, zx_tmp_fi2d)
     369
     370       IF (vars_defined) THEN
     371          DO i = 1, klon
     372             zx_tmp_fi2d(i) = rain_con(i) + snow_con(i)
     373          ENDDO
     374       ENDIF
     375       CALL histwrite_phy(o_pluc, zx_tmp_fi2d)
     376       CALL histwrite_phy(o_snow, snow_fall)
     377       CALL histwrite_phy(o_msnow, snow_o)
     378       CALL histwrite_phy(o_fsnow, zfra_o)
     379       CALL histwrite_phy(o_evap, evap)
     380       CALL histwrite_phy(o_tops, topsw)
     381       CALL histwrite_phy(o_tops0, topsw0)
     382       CALL histwrite_phy(o_topl, toplw)
     383       CALL histwrite_phy(o_topl0, toplw0)
     384
     385       IF (vars_defined) THEN
     386          zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 )
     387       ENDIF
     388       CALL histwrite_phy(o_SWupTOA, zx_tmp_fi2d)
     389
     390       IF (vars_defined) THEN
     391          zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, klevp1 )
     392       ENDIF
     393       CALL histwrite_phy(o_SWupTOAclr, zx_tmp_fi2d)
     394
     395       IF (vars_defined) THEN
     396          zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 )
     397       ENDIF
     398       CALL histwrite_phy(o_SWdnTOA, zx_tmp_fi2d)
     399
     400       IF (vars_defined) THEN
     401          zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, klevp1 )
     402       ENDIF
     403       CALL histwrite_phy(o_SWdnTOAclr, zx_tmp_fi2d)
     404
     405       IF (vars_defined) THEN
     406          zx_tmp_fi2d(:) = topsw(:)-toplw(:)
     407       ENDIF
     408       CALL histwrite_phy(o_nettop, zx_tmp_fi2d)
     409       CALL histwrite_phy(o_SWup200, SWup200)
     410       CALL histwrite_phy(o_SWup200clr, SWup200clr)
     411       CALL histwrite_phy(o_SWdn200, SWdn200)
     412       CALL histwrite_phy(o_SWdn200clr, SWdn200clr)
     413       CALL histwrite_phy(o_LWup200, LWup200)
     414       CALL histwrite_phy(o_LWup200clr, LWup200clr)
     415       CALL histwrite_phy(o_LWdn200, LWdn200)
     416       CALL histwrite_phy(o_LWdn200clr, LWdn200clr)
     417       CALL histwrite_phy(o_sols, solsw)
     418       CALL histwrite_phy(o_sols0, solsw0)
     419       CALL histwrite_phy(o_soll, sollw)
     420       CALL histwrite_phy(o_radsol, radsol)
     421       CALL histwrite_phy(o_soll0, sollw0)
     422
     423       IF (vars_defined) THEN
     424          zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 )
     425       ENDIF
     426       CALL histwrite_phy(o_SWupSFC, zx_tmp_fi2d)
     427
     428       IF (vars_defined) THEN
     429          zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 1 )
     430       ENDIF
     431       CALL histwrite_phy(o_SWupSFCclr, zx_tmp_fi2d)
     432
     433       IF (vars_defined) THEN
     434          zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 )
     435       ENDIF
     436       CALL histwrite_phy(o_SWdnSFC, zx_tmp_fi2d)
     437
     438       IF (vars_defined) THEN
     439          zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 1 )
     440       ENDIF
     441       CALL histwrite_phy(o_SWdnSFCclr, zx_tmp_fi2d)
     442
     443       IF (vars_defined) THEN
     444          zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon)
     445       ENDIF
     446       CALL histwrite_phy(o_LWupSFC, zx_tmp_fi2d)
     447       CALL histwrite_phy(o_LWdnSFC, sollwdown)
     448
     449       IF (vars_defined) THEN
     450          sollwdownclr(1:klon) = -1.*lwdn0(1:klon,1)
     451          zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon)
     452       ENDIF
     453       CALL histwrite_phy(o_LWupSFCclr, zx_tmp_fi2d)
     454       CALL histwrite_phy(o_LWdnSFCclr, sollwdownclr)
     455       CALL histwrite_phy(o_bils, bils)
     456       CALL histwrite_phy(o_bils_diss, bils_diss)
     457       CALL histwrite_phy(o_bils_ec, bils_ec)
     458       CALL histwrite_phy(o_bils_tke, bils_tke)
     459       CALL histwrite_phy(o_bils_kinetic, bils_kinetic)
     460       CALL histwrite_phy(o_bils_latent, bils_latent)
     461       CALL histwrite_phy(o_bils_enthalp, bils_enthalp)
     462
     463       IF (vars_defined) THEN
     464          zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
     465       ENDIF
     466       CALL histwrite_phy(o_sens, zx_tmp_fi2d)
     467       CALL histwrite_phy(o_fder, fder)
     468       CALL histwrite_phy(o_ffonte, zxffonte)
     469       CALL histwrite_phy(o_fqcalving, zxfqcalving)
     470       CALL histwrite_phy(o_fqfonte, zxfqfonte)
     471       IF (vars_defined) THEN
     472          zx_tmp_fi2d=0.
     473          DO nsrf=1,nbsrf
     474             zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxu(:,1,nsrf)
     475          ENDDO
     476       ENDIF
     477       CALL histwrite_phy(o_taux, zx_tmp_fi2d)
     478
     479       IF (vars_defined) THEN
     480          zx_tmp_fi2d=0.
     481          DO nsrf=1,nbsrf
     482             zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxv(:,1,nsrf)
     483          ENDDO
     484       ENDIF
     485       CALL histwrite_phy(o_tauy, zx_tmp_fi2d)
     486
     487       IF (ok_snow) THEN
     488          CALL histwrite_phy(o_snowsrf, zxsnow)
     489          CALL histwrite_phy(o_qsnow, qsnow)
     490          CALL histwrite_phy(o_snowhgt,snowhgt)
     491          CALL histwrite_phy(o_toice,to_ice)
     492          CALL histwrite_phy(o_sissnow,sissnow)
     493          CALL histwrite_phy(o_runoff,runoff)
     494          CALL histwrite_phy(o_albslw3,albsol3_lic)
     495       ENDIF
     496
     497       DO nsrf = 1, nbsrf
     498          IF (vars_defined)             zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
     499          CALL histwrite_phy(o_pourc_srf(nsrf), zx_tmp_fi2d)
     500          IF (vars_defined)           zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
     501          CALL histwrite_phy(o_fract_srf(nsrf), zx_tmp_fi2d)
     502          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
     503          CALL histwrite_phy(o_taux_srf(nsrf), zx_tmp_fi2d)
     504          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
     505          CALL histwrite_phy(o_tauy_srf(nsrf), zx_tmp_fi2d)
     506          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
     507          CALL histwrite_phy(o_tsol_srf(nsrf), zx_tmp_fi2d)
     508          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = evap_pot( 1 : klon, nsrf)
     509          CALL histwrite_phy(o_evappot_srf(nsrf), zx_tmp_fi2d)
     510          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = ustar(1 : klon, nsrf)
     511          CALL histwrite_phy(o_ustar_srf(nsrf), zx_tmp_fi2d)
     512          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = u10m(1 : klon, nsrf)
     513          CALL histwrite_phy(o_u10m_srf(nsrf), zx_tmp_fi2d)
     514          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = v10m(1 : klon, nsrf)
     515          CALL histwrite_phy(o_v10m_srf(nsrf), zx_tmp_fi2d)
     516          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = t2m(1 : klon, nsrf)
     517          CALL histwrite_phy(o_t2m_srf(nsrf), zx_tmp_fi2d)
     518          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fevap(1 : klon, nsrf)
     519          CALL histwrite_phy(o_evap_srf(nsrf), zx_tmp_fi2d)
     520          IF (vars_defined)        zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
     521          CALL histwrite_phy(o_sens_srf(nsrf), zx_tmp_fi2d)
     522          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
     523          CALL histwrite_phy(o_lat_srf(nsrf), zx_tmp_fi2d)
     524          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf)
     525          CALL histwrite_phy(o_flw_srf(nsrf), zx_tmp_fi2d)
     526          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf)
     527          CALL histwrite_phy(o_fsw_srf(nsrf), zx_tmp_fi2d)
     528          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf)
     529          CALL histwrite_phy(o_wbils_srf(nsrf), zx_tmp_fi2d)
     530          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfbilo( 1 : klon, nsrf)
     531          CALL histwrite_phy(o_wbilo_srf(nsrf), zx_tmp_fi2d)
     532
     533          IF (iflag_pbl > 1) THEN
     534             CALL histwrite_phy(o_tke_srf(nsrf),  pbl_tke(:,1:klev,nsrf))
     535             CALL histwrite_phy(o_tke_max_srf(nsrf),  pbl_tke(:,1:klev,nsrf))
     536          ENDIF
     537
    359538       ENDDO
    360 ENDIF
    361 
    362       CALL histwrite_phy(o_precip, zx_tmp_fi2d)
    363       CALL histwrite_phy(o_ndayrain, nday_rain)
    364 
    365 IF (vars_defined) THEN
    366        DO i = 1, klon
    367          zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i)
     539       DO nsrf=1,nbsrf+1
     540          CALL histwrite_phy(o_wstar(nsrf), wstar(1 : klon, nsrf))
    368541       ENDDO
    369 ENDIF
    370       CALL histwrite_phy(o_plul, zx_tmp_fi2d)
    371 
    372 IF (vars_defined) THEN
    373       DO i = 1, klon
    374          zx_tmp_fi2d(i) = rain_con(i) + snow_con(i)
    375       ENDDO
    376 ENDIF
    377       CALL histwrite_phy(o_pluc, zx_tmp_fi2d)
    378       CALL histwrite_phy(o_snow, snow_fall)
    379       CALL histwrite_phy(o_msnow, snow_o)
    380       CALL histwrite_phy(o_fsnow, zfra_o)
    381       CALL histwrite_phy(o_evap, evap)
    382       CALL histwrite_phy(o_tops, topsw)
    383       CALL histwrite_phy(o_tops0, topsw0)
    384       CALL histwrite_phy(o_topl, toplw)
    385       CALL histwrite_phy(o_topl0, toplw0)
    386 
    387 IF (vars_defined) THEN
    388       zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 )
    389 ENDIF
    390       CALL histwrite_phy(o_SWupTOA, zx_tmp_fi2d)
    391 
    392 IF (vars_defined) THEN
    393       zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, klevp1 )
    394 ENDIF
    395       CALL histwrite_phy(o_SWupTOAclr, zx_tmp_fi2d)
    396 
    397 IF (vars_defined) THEN
    398       zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 )
    399 ENDIF
    400       CALL histwrite_phy(o_SWdnTOA, zx_tmp_fi2d)
    401 
    402 IF (vars_defined) THEN
    403       zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, klevp1 )
    404 ENDIF
    405       CALL histwrite_phy(o_SWdnTOAclr, zx_tmp_fi2d)
    406 
    407 IF (vars_defined) THEN
    408       zx_tmp_fi2d(:) = topsw(:)-toplw(:)
    409 ENDIF
    410       CALL histwrite_phy(o_nettop, zx_tmp_fi2d)
    411       CALL histwrite_phy(o_SWup200, SWup200)
    412       CALL histwrite_phy(o_SWup200clr, SWup200clr)
    413       CALL histwrite_phy(o_SWdn200, SWdn200)
    414       CALL histwrite_phy(o_SWdn200clr, SWdn200clr)
    415       CALL histwrite_phy(o_LWup200, LWup200)
    416       CALL histwrite_phy(o_LWup200clr, LWup200clr)
    417       CALL histwrite_phy(o_LWdn200, LWdn200)
    418       CALL histwrite_phy(o_LWdn200clr, LWdn200clr)
    419       CALL histwrite_phy(o_sols, solsw)
    420       CALL histwrite_phy(o_sols0, solsw0)
    421       CALL histwrite_phy(o_soll, sollw)
    422       CALL histwrite_phy(o_radsol, radsol)
    423       CALL histwrite_phy(o_soll0, sollw0)
    424 
    425 IF (vars_defined) THEN
    426       zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 )
    427 ENDIF
    428       CALL histwrite_phy(o_SWupSFC, zx_tmp_fi2d)
    429 
    430 IF (vars_defined) THEN
    431       zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 1 )
    432 ENDIF
    433       CALL histwrite_phy(o_SWupSFCclr, zx_tmp_fi2d)
    434 
    435 IF (vars_defined) THEN
    436       zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 )
    437 ENDIF
    438       CALL histwrite_phy(o_SWdnSFC, zx_tmp_fi2d)
    439 
    440 IF (vars_defined) THEN
    441       zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 1 )
    442 ENDIF
    443       CALL histwrite_phy(o_SWdnSFCclr, zx_tmp_fi2d)
    444 
    445 IF (vars_defined) THEN
    446       zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon)
    447 ENDIF
    448       CALL histwrite_phy(o_LWupSFC, zx_tmp_fi2d)
    449       CALL histwrite_phy(o_LWdnSFC, sollwdown)
    450 
    451 IF (vars_defined) THEN
    452        sollwdownclr(1:klon) = -1.*lwdn0(1:klon,1)
    453       zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon)
    454 ENDIF
    455       CALL histwrite_phy(o_LWupSFCclr, zx_tmp_fi2d)
    456       CALL histwrite_phy(o_LWdnSFCclr, sollwdownclr)
    457       CALL histwrite_phy(o_bils, bils)
    458       CALL histwrite_phy(o_bils_diss, bils_diss)
    459       CALL histwrite_phy(o_bils_ec, bils_ec)
    460       CALL histwrite_phy(o_bils_tke, bils_tke)
    461       CALL histwrite_phy(o_bils_kinetic, bils_kinetic)
    462       CALL histwrite_phy(o_bils_latent, bils_latent)
    463       CALL histwrite_phy(o_bils_enthalp, bils_enthalp)
    464 
    465 IF (vars_defined) THEN
    466       zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
    467 ENDIF
    468       CALL histwrite_phy(o_sens, zx_tmp_fi2d)
    469       CALL histwrite_phy(o_fder, fder)
    470       CALL histwrite_phy(o_ffonte, zxffonte)
    471       CALL histwrite_phy(o_fqcalving, zxfqcalving)
    472       CALL histwrite_phy(o_fqfonte, zxfqfonte)
    473 IF (vars_defined) THEN
    474       zx_tmp_fi2d=0.
    475       DO nsrf=1,nbsrf
    476         zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxu(:,1,nsrf)
    477       ENDDO
    478 ENDIF
    479       CALL histwrite_phy(o_taux, zx_tmp_fi2d)
    480 
    481 IF (vars_defined) THEN
    482       zx_tmp_fi2d=0.
    483       DO nsrf=1,nbsrf
    484           zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxv(:,1,nsrf)
    485       ENDDO
    486 ENDIF
    487       CALL histwrite_phy(o_tauy, zx_tmp_fi2d)
    488 
    489       IF (ok_snow) THEN
    490          CALL histwrite_phy(o_snowsrf, zxsnow)
    491          CALL histwrite_phy(o_qsnow, qsnow)
    492          CALL histwrite_phy(o_snowhgt,snowhgt)
    493          CALL histwrite_phy(o_toice,to_ice)
    494          CALL histwrite_phy(o_sissnow,sissnow)
    495          CALL histwrite_phy(o_runoff,runoff)
    496          CALL histwrite_phy(o_albslw3,albsol3_lic)
    497       ENDIF
    498 
    499 
    500          DO nsrf = 1, nbsrf
    501 IF (vars_defined)             zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
    502       CALL histwrite_phy(o_pourc_srf(nsrf), zx_tmp_fi2d)
    503 IF (vars_defined)           zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
    504       CALL histwrite_phy(o_fract_srf(nsrf), zx_tmp_fi2d)
    505 IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
    506       CALL histwrite_phy(o_taux_srf(nsrf), zx_tmp_fi2d)
    507 IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
    508       CALL histwrite_phy(o_tauy_srf(nsrf), zx_tmp_fi2d)
    509 IF (vars_defined)         zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
    510       CALL histwrite_phy(o_tsol_srf(nsrf), zx_tmp_fi2d)
    511 IF (vars_defined)         zx_tmp_fi2d(1 : klon) = evap_pot( 1 : klon, nsrf)
    512       CALL histwrite_phy(o_evappot_srf(nsrf), zx_tmp_fi2d)
    513 IF (vars_defined)       zx_tmp_fi2d(1 : klon) = ustar(1 : klon, nsrf)
    514       CALL histwrite_phy(o_ustar_srf(nsrf), zx_tmp_fi2d)
    515 IF (vars_defined)       zx_tmp_fi2d(1 : klon) = u10m(1 : klon, nsrf)
    516       CALL histwrite_phy(o_u10m_srf(nsrf), zx_tmp_fi2d)
    517 IF (vars_defined)       zx_tmp_fi2d(1 : klon) = v10m(1 : klon, nsrf)
    518       CALL histwrite_phy(o_v10m_srf(nsrf), zx_tmp_fi2d)
    519 IF (vars_defined)       zx_tmp_fi2d(1 : klon) = t2m(1 : klon, nsrf)
    520       CALL histwrite_phy(o_t2m_srf(nsrf), zx_tmp_fi2d)
    521 IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fevap(1 : klon, nsrf)
    522       CALL histwrite_phy(o_evap_srf(nsrf), zx_tmp_fi2d)
    523 IF (vars_defined)        zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
    524       CALL histwrite_phy(o_sens_srf(nsrf), zx_tmp_fi2d)
    525 IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
    526       CALL histwrite_phy(o_lat_srf(nsrf), zx_tmp_fi2d)
    527 IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf)
    528       CALL histwrite_phy(o_flw_srf(nsrf), zx_tmp_fi2d)
    529 IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf)
    530       CALL histwrite_phy(o_fsw_srf(nsrf), zx_tmp_fi2d)
    531 IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf)
    532       CALL histwrite_phy(o_wbils_srf(nsrf), zx_tmp_fi2d)
    533 IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfbilo( 1 : klon, nsrf)
    534       CALL histwrite_phy(o_wbilo_srf(nsrf), zx_tmp_fi2d)
    535 
    536       IF (iflag_pbl > 1) THEN
    537       CALL histwrite_phy(o_tke_srf(nsrf),  pbl_tke(:,1:klev,nsrf))
    538       CALL histwrite_phy(o_tke_max_srf(nsrf),  pbl_tke(:,1:klev,nsrf))
    539       ENDIF
    540 
    541       ENDDO
    542       DO nsrf=1,nbsrf+1
    543          CALL histwrite_phy(o_wstar(nsrf), wstar(1 : klon, nsrf))
    544       ENDDO
    545 
    546       CALL histwrite_phy(o_cdrm, cdragm)
    547       CALL histwrite_phy(o_cdrh, cdragh)
    548       CALL histwrite_phy(o_cldl, cldl)
    549       CALL histwrite_phy(o_cldm, cldm)
    550       CALL histwrite_phy(o_cldh, cldh)
    551       CALL histwrite_phy(o_cldt, cldt)
    552       CALL histwrite_phy(o_cldq, cldq)
    553 IF (vars_defined)       zx_tmp_fi2d(1:klon) = flwp(1:klon)
    554       CALL histwrite_phy(o_lwp, zx_tmp_fi2d)
    555 IF (vars_defined)       zx_tmp_fi2d(1:klon) = fiwp(1:klon)
    556       CALL histwrite_phy(o_iwp, zx_tmp_fi2d)
    557       CALL histwrite_phy(o_ue, ue)
    558       CALL histwrite_phy(o_ve, ve)
    559       CALL histwrite_phy(o_uq, uq)
    560       CALL histwrite_phy(o_vq, vq)
    561       IF(iflag_con.GE.3) THEN ! sb
    562       CALL histwrite_phy(o_cape, cape)
    563       CALL histwrite_phy(o_pbase, ema_pcb)
    564       CALL histwrite_phy(o_ptop, ema_pct)
    565       CALL histwrite_phy(o_fbase, ema_cbmf)
    566         if (iflag_con /= 30) then
    567       CALL histwrite_phy(o_plcl, plcl)
    568       CALL histwrite_phy(o_plfc, plfc)
    569       CALL histwrite_phy(o_wbeff, wbeff)
    570         end if
    571 
    572       CALL histwrite_phy(o_cape_max, cape)
    573 
    574       CALL histwrite_phy(o_upwd, upwd)
    575       CALL histwrite_phy(o_Ma, Ma)
    576       CALL histwrite_phy(o_dnwd, dnwd)
    577       CALL histwrite_phy(o_dnwd0, dnwd0)
    578 IF (vars_defined)         zx_tmp_fi2d=float(itau_con)/float(itap)
    579       CALL histwrite_phy(o_ftime_con, zx_tmp_fi2d)
    580 IF (vars_defined) THEN
    581       IF(iflag_thermals>=1)THEN
    582          zx_tmp_fi3d=dnwd+dnwd0+upwd+fm_therm(:,1:klev)
    583       ELSE
    584          zx_tmp_fi3d=dnwd+dnwd0+upwd
    585       ENDIF
    586 ENDIF
    587       CALL histwrite_phy(o_mc, zx_tmp_fi3d)
    588       ENDIF !iflag_con .GE. 3
    589       CALL histwrite_phy(o_prw, prw)
    590       CALL histwrite_phy(o_s_pblh, s_pblh)
    591       CALL histwrite_phy(o_s_pblt, s_pblt)
    592       CALL histwrite_phy(o_s_lcl, s_lcl)
    593       CALL histwrite_phy(o_s_therm, s_therm)
    594 !IM : Les champs suivants (s_capCL, s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F
    595 !       IF (o_s_capCL%flag(iff)<=lev_files(iff)) THEN
    596 !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
    597 !    $o_s_capCL%name,itau_w,s_capCL)
    598 !       ENDIF
    599 !       IF (o_s_oliqCL%flag(iff)<=lev_files(iff)) THEN
    600 !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
    601 !    $o_s_oliqCL%name,itau_w,s_oliqCL)
    602 !       ENDIF
    603 !       IF (o_s_cteiCL%flag(iff)<=lev_files(iff)) THEN
    604 !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
    605 !    $o_s_cteiCL%name,itau_w,s_cteiCL)
    606 !       ENDIF
    607 !       IF (o_s_trmb1%flag(iff)<=lev_files(iff)) THEN
    608 !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
    609 !    $o_s_trmb1%name,itau_w,s_trmb1)
    610 !       ENDIF
    611 !       IF (o_s_trmb2%flag(iff)<=lev_files(iff)) THEN
    612 !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
    613 !    $o_s_trmb2%name,itau_w,s_trmb2)
    614 !       ENDIF
    615 !       IF (o_s_trmb3%flag(iff)<=lev_files(iff)) THEN
    616 !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
    617 !    $o_s_trmb3%name,itau_w,s_trmb3)
    618 !       ENDIF
    619 
    620 
    621 
    622 ! ATTENTION, LES ANCIENS HISTWRITE ONT ETES CONSERVES EN ATTENDANT MIEUX:
    623 ! Champs interpolles sur des niveaux de pression
    624       DO iff=1, nfiles
    625         ll=0
    626         DO k=1, nlevSTD
    627          bb2=clevSTD(k)
    628          IF(bb2.EQ."850".OR.bb2.EQ."700".OR. &
    629             bb2.EQ."500".OR.bb2.EQ."200".OR. &
    630             bb2.EQ."100".OR. &
    631             bb2.EQ."50".OR.bb2.EQ."10") THEN
    632 
    633 ! a refaire correctement !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    634           ll=ll+1
    635       CALL histwrite_phy(o_uSTDlevs(ll),uwriteSTD(:,k,iff), iff)
    636       CALL histwrite_phy(o_vSTDlevs(ll),vwriteSTD(:,k,iff), iff)
    637       CALL histwrite_phy(o_wSTDlevs(ll),wwriteSTD(:,k,iff), iff)
    638       CALL histwrite_phy(o_zSTDlevs(ll),phiwriteSTD(:,k,iff), iff)
    639       CALL histwrite_phy(o_qSTDlevs(ll),qwriteSTD(:,k,iff), iff)
    640       CALL histwrite_phy(o_tSTDlevs(ll),twriteSTD(:,k,iff), iff)
    641 
    642        ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
     542
     543       CALL histwrite_phy(o_cdrm, cdragm)
     544       CALL histwrite_phy(o_cdrh, cdragh)
     545       CALL histwrite_phy(o_cldl, cldl)
     546       CALL histwrite_phy(o_cldm, cldm)
     547       CALL histwrite_phy(o_cldh, cldh)
     548       CALL histwrite_phy(o_cldt, cldt)
     549       CALL histwrite_phy(o_cldq, cldq)
     550       IF (vars_defined)       zx_tmp_fi2d(1:klon) = flwp(1:klon)
     551       CALL histwrite_phy(o_lwp, zx_tmp_fi2d)
     552       IF (vars_defined)       zx_tmp_fi2d(1:klon) = fiwp(1:klon)
     553       CALL histwrite_phy(o_iwp, zx_tmp_fi2d)
     554       CALL histwrite_phy(o_ue, ue)
     555       CALL histwrite_phy(o_ve, ve)
     556       CALL histwrite_phy(o_uq, uq)
     557       CALL histwrite_phy(o_vq, vq)
     558       IF(iflag_con.GE.3) THEN ! sb
     559          CALL histwrite_phy(o_cape, cape)
     560          CALL histwrite_phy(o_pbase, ema_pcb)
     561          CALL histwrite_phy(o_ptop, ema_pct)
     562          CALL histwrite_phy(o_fbase, ema_cbmf)
     563          if (iflag_con /= 30) then
     564             CALL histwrite_phy(o_plcl, plcl)
     565             CALL histwrite_phy(o_plfc, plfc)
     566             CALL histwrite_phy(o_wbeff, wbeff)
     567          end if
     568
     569          CALL histwrite_phy(o_cape_max, cape)
     570
     571          CALL histwrite_phy(o_upwd, upwd)
     572          CALL histwrite_phy(o_Ma, Ma)
     573          CALL histwrite_phy(o_dnwd, dnwd)
     574          CALL histwrite_phy(o_dnwd0, dnwd0)
     575          IF (vars_defined)         zx_tmp_fi2d=float(itau_con)/float(itap)
     576          CALL histwrite_phy(o_ftime_con, zx_tmp_fi2d)
     577          IF (vars_defined) THEN
     578             IF(iflag_thermals>=1)THEN
     579                zx_tmp_fi3d=dnwd+dnwd0+upwd+fm_therm(:,1:klev)
     580             ELSE
     581                zx_tmp_fi3d=dnwd+dnwd0+upwd
     582             ENDIF
     583          ENDIF
     584          CALL histwrite_phy(o_mc, zx_tmp_fi3d)
     585       ENDIF !iflag_con .GE. 3
     586       CALL histwrite_phy(o_prw, prw)
     587       CALL histwrite_phy(o_s_pblh, s_pblh)
     588       CALL histwrite_phy(o_s_pblt, s_pblt)
     589       CALL histwrite_phy(o_s_lcl, s_lcl)
     590       CALL histwrite_phy(o_s_therm, s_therm)
     591       !IM : Les champs suivants (s_capCL, s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F
     592       !       IF (o_s_capCL%flag(iff)<=lev_files(iff)) THEN
     593       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
     594       !    $o_s_capCL%name,itau_w,s_capCL)
     595       !       ENDIF
     596       !       IF (o_s_oliqCL%flag(iff)<=lev_files(iff)) THEN
     597       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
     598       !    $o_s_oliqCL%name,itau_w,s_oliqCL)
     599       !       ENDIF
     600       !       IF (o_s_cteiCL%flag(iff)<=lev_files(iff)) THEN
     601       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
     602       !    $o_s_cteiCL%name,itau_w,s_cteiCL)
     603       !       ENDIF
     604       !       IF (o_s_trmb1%flag(iff)<=lev_files(iff)) THEN
     605       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
     606       !    $o_s_trmb1%name,itau_w,s_trmb1)
     607       !       ENDIF
     608       !       IF (o_s_trmb2%flag(iff)<=lev_files(iff)) THEN
     609       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
     610       !    $o_s_trmb2%name,itau_w,s_trmb2)
     611       !       ENDIF
     612       !       IF (o_s_trmb3%flag(iff)<=lev_files(iff)) THEN
     613       !     CALL histwrite_phy(nid_files(iff),clef_stations(iff),
     614       !    $o_s_trmb3%name,itau_w,s_trmb3)
     615       !       ENDIF
     616
     617       ! ATTENTION, LES ANCIENS HISTWRITE ONT ETES CONSERVES EN ATTENDANT MIEUX:
     618       ! Champs interpolles sur des niveaux de pression
     619       DO iff=1, nfiles
     620          ll=0
     621          DO k=1, nlevSTD
     622             bb2=clevSTD(k)
     623             IF(bb2.EQ."850".OR.bb2.EQ."700".OR. &
     624                  bb2.EQ."500".OR.bb2.EQ."200".OR. &
     625                  bb2.EQ."100".OR. &
     626                  bb2.EQ."50".OR.bb2.EQ."10") THEN
     627
     628                ! a refaire correctement !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     629                ll=ll+1
     630                CALL histwrite_phy(o_uSTDlevs(ll),uwriteSTD(:,k,iff), iff)
     631                CALL histwrite_phy(o_vSTDlevs(ll),vwriteSTD(:,k,iff), iff)
     632                CALL histwrite_phy(o_wSTDlevs(ll),wwriteSTD(:,k,iff), iff)
     633                CALL histwrite_phy(o_zSTDlevs(ll),phiwriteSTD(:,k,iff), iff)
     634                CALL histwrite_phy(o_qSTDlevs(ll),qwriteSTD(:,k,iff), iff)
     635                CALL histwrite_phy(o_tSTDlevs(ll),twriteSTD(:,k,iff), iff)
     636
     637             ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
     638          ENDDO
    643639       ENDDO
    644        ENDDO
    645 
    646 
    647 
    648 IF (vars_defined) THEN
    649       DO i=1, klon
    650        IF (pctsrf(i,is_oce).GT.epsfra.OR. &
    651            pctsrf(i,is_sic).GT.epsfra) THEN
    652         zx_tmp_fi2d(i) = (ftsol(i, is_oce) * pctsrf(i,is_oce)+ &
    653                          ftsol(i, is_sic) * pctsrf(i,is_sic))/ &
    654                          (pctsrf(i,is_oce)+pctsrf(i,is_sic))
    655        ELSE
    656         zx_tmp_fi2d(i) = 273.15
    657        ENDIF
    658       ENDDO
    659 ENDIF
    660       CALL histwrite_phy(o_t_oce_sic, zx_tmp_fi2d)
    661 
    662 ! Couplage convection-couche limite
    663       IF (iflag_con.GE.3) THEN
    664       IF (iflag_coupl>=1) THEN
    665       CALL histwrite_phy(o_ale_bl, ale_bl)
    666       CALL histwrite_phy(o_alp_bl, alp_bl)
    667       ENDIF !iflag_coupl>=1
    668       ENDIF !(iflag_con.GE.3)
    669 ! Wakes
    670       IF (iflag_con.EQ.3) THEN
    671       IF (iflag_wake>=1) THEN
    672       CALL histwrite_phy(o_ale_wk, ale_wake)
    673       CALL histwrite_phy(o_alp_wk, alp_wake)
    674       CALL histwrite_phy(o_ale, ale)
    675       CALL histwrite_phy(o_alp, alp)
    676       CALL histwrite_phy(o_cin, cin)
    677       CALL histwrite_phy(o_WAPE, wake_pe)
    678       CALL histwrite_phy(o_wake_h, wake_h)
    679       CALL histwrite_phy(o_wake_s, wake_s)
    680       CALL histwrite_phy(o_wake_deltat, wake_deltat)
    681       CALL histwrite_phy(o_wake_deltaq, wake_deltaq)
    682       CALL histwrite_phy(o_wake_omg, wake_omg)
    683 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_wake(1:klon,1:klev) &
    684                                               /pdtphys
    685       CALL histwrite_phy(o_dtwak, zx_tmp_fi3d)
    686 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_wake(1:klon,1:klev)/pdtphys
    687       CALL histwrite_phy(o_dqwak, zx_tmp_fi3d)
    688       ENDIF ! iflag_wake>=1
    689       CALL histwrite_phy(o_Vprecip, Vprecip)
    690       CALL histwrite_phy(o_ftd, ftd)
    691       CALL histwrite_phy(o_fqd, fqd)
    692       ELSEIF (iflag_con.EQ.30) THEN
    693 ! sortie RomP convection descente insaturee iflag_con=30
    694       CALL histwrite_phy(o_Vprecip, Vprecip)
    695       CALL histwrite_phy(o_wdtrainA, wdtrainA)
    696       CALL histwrite_phy(o_wdtrainM, wdtrainM)
    697       ENDIF !(iflag_con.EQ.3.or.iflag_con.EQ.30)
     640
     641       IF (vars_defined) THEN
     642          DO i=1, klon
     643             IF (pctsrf(i,is_oce).GT.epsfra.OR. &
     644                  pctsrf(i,is_sic).GT.epsfra) THEN
     645                zx_tmp_fi2d(i) = (ftsol(i, is_oce) * pctsrf(i,is_oce)+ &
     646                     ftsol(i, is_sic) * pctsrf(i,is_sic))/ &
     647                     (pctsrf(i,is_oce)+pctsrf(i,is_sic))
     648             ELSE
     649                zx_tmp_fi2d(i) = 273.15
     650             ENDIF
     651          ENDDO
     652       ENDIF
     653       CALL histwrite_phy(o_t_oce_sic, zx_tmp_fi2d)
     654
     655       ! Couplage convection-couche limite
     656       IF (iflag_con.GE.3) THEN
     657          IF (iflag_coupl>=1) THEN
     658             CALL histwrite_phy(o_ale_bl, ale_bl)
     659             CALL histwrite_phy(o_alp_bl, alp_bl)
     660          ENDIF !iflag_coupl>=1
     661       ENDIF !(iflag_con.GE.3)
     662       ! Wakes
     663       IF (iflag_con.EQ.3) THEN
     664          IF (iflag_wake>=1) THEN
     665             CALL histwrite_phy(o_ale_wk, ale_wake)
     666             CALL histwrite_phy(o_alp_wk, alp_wake)
     667             CALL histwrite_phy(o_ale, ale)
     668             CALL histwrite_phy(o_alp, alp)
     669             CALL histwrite_phy(o_cin, cin)
     670             CALL histwrite_phy(o_WAPE, wake_pe)
     671             CALL histwrite_phy(o_wake_h, wake_h)
     672             CALL histwrite_phy(o_wake_s, wake_s)
     673             CALL histwrite_phy(o_wake_deltat, wake_deltat)
     674             CALL histwrite_phy(o_wake_deltaq, wake_deltaq)
     675             CALL histwrite_phy(o_wake_omg, wake_omg)
     676             IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_wake(1:klon,1:klev) &
     677                  /pdtphys
     678             CALL histwrite_phy(o_dtwak, zx_tmp_fi3d)
     679             IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_wake(1:klon,1:klev)/pdtphys
     680             CALL histwrite_phy(o_dqwak, zx_tmp_fi3d)
     681          ENDIF ! iflag_wake>=1
     682          CALL histwrite_phy(o_Vprecip, Vprecip)
     683          CALL histwrite_phy(o_ftd, ftd)
     684          CALL histwrite_phy(o_fqd, fqd)
     685       ELSEIF (iflag_con.EQ.30) THEN
     686          ! sortie RomP convection descente insaturee iflag_con=30
     687          CALL histwrite_phy(o_Vprecip, Vprecip)
     688          CALL histwrite_phy(o_wdtrainA, wdtrainA)
     689          CALL histwrite_phy(o_wdtrainM, wdtrainM)
     690       ENDIF !(iflag_con.EQ.3.or.iflag_con.EQ.30)
    698691!!! nrlmd le 10/04/2012
    699         IF (iflag_trig_bl>=1) THEN
    700       CALL histwrite_phy(o_n2, n2)
    701       CALL histwrite_phy(o_s2, s2)
    702       CALL histwrite_phy(o_proba_notrig, proba_notrig)
    703       CALL histwrite_phy(o_random_notrig, random_notrig)
    704       CALL histwrite_phy(o_ale_bl_stat, ale_bl_stat)
    705       CALL histwrite_phy(o_ale_bl_trig, ale_bl_trig)
     692       IF (iflag_trig_bl>=1) THEN
     693          CALL histwrite_phy(o_n2, n2)
     694          CALL histwrite_phy(o_s2, s2)
     695          CALL histwrite_phy(o_proba_notrig, proba_notrig)
     696          CALL histwrite_phy(o_random_notrig, random_notrig)
     697          CALL histwrite_phy(o_ale_bl_stat, ale_bl_stat)
     698          CALL histwrite_phy(o_ale_bl_trig, ale_bl_trig)
    706699       ENDIF  !(iflag_trig_bl>=1)
    707         IF (iflag_clos_bl>=1) THEN
    708       CALL histwrite_phy(o_alp_bl_det, alp_bl_det)
    709       CALL histwrite_phy(o_alp_bl_fluct_m, alp_bl_fluct_m)
    710       CALL histwrite_phy(o_alp_bl_fluct_tke,  &
    711        alp_bl_fluct_tke)
    712       CALL histwrite_phy(o_alp_bl_conv, alp_bl_conv)
    713       CALL histwrite_phy(o_alp_bl_stat, alp_bl_stat)
     700       IF (iflag_clos_bl>=1) THEN
     701          CALL histwrite_phy(o_alp_bl_det, alp_bl_det)
     702          CALL histwrite_phy(o_alp_bl_fluct_m, alp_bl_fluct_m)
     703          CALL histwrite_phy(o_alp_bl_fluct_tke,  &
     704               alp_bl_fluct_tke)
     705          CALL histwrite_phy(o_alp_bl_conv, alp_bl_conv)
     706          CALL histwrite_phy(o_alp_bl_stat, alp_bl_stat)
    714707       ENDIF  !(iflag_clos_bl>=1)
    715708!!! fin nrlmd le 10/04/2012
    716       IF (type_ocean=='slab ') THEN
    717       CALL histwrite_phy(o_slab_bils, slab_wfbils)
    718       ENDIF !type_ocean == force/slab
    719       CALL histwrite_phy(o_weakinv, weak_inversion)
    720       CALL histwrite_phy(o_dthmin, dthmin)
    721       CALL histwrite_phy(o_cldtau, cldtau)
    722       CALL histwrite_phy(o_cldemi, cldemi)
    723       CALL histwrite_phy(o_pr_con_l, pmflxr(:,1:klev))
    724       CALL histwrite_phy(o_pr_con_i, pmflxs(:,1:klev))
    725       CALL histwrite_phy(o_pr_lsc_l, prfl(:,1:klev))
    726       CALL histwrite_phy(o_pr_lsc_i, psfl(:,1:klev))
    727       CALL histwrite_phy(o_re, re)
    728       CALL histwrite_phy(o_fl, fl)
    729 IF (vars_defined) THEN
    730       DO i=1, klon
    731        zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
    732       ENDDO
    733 ENDIF
    734       CALL histwrite_phy(o_rh2m, zx_tmp_fi2d)
    735 
    736 IF (vars_defined) THEN
    737       DO i=1, klon
    738        zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
    739       ENDDO
    740 ENDIF
    741       CALL histwrite_phy(o_rh2m_min, zx_tmp_fi2d)
    742 
    743 IF (vars_defined) THEN
    744       DO i=1, klon
    745        zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
    746       ENDDO
    747 ENDIF
    748       CALL histwrite_phy(o_rh2m_max, zx_tmp_fi2d)
    749 
    750       CALL histwrite_phy(o_qsat2m, qsat2m)
    751       CALL histwrite_phy(o_tpot, tpot)
    752       CALL histwrite_phy(o_tpote, tpote)
    753 IF (vars_defined) zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, is_ter)
    754       CALL histwrite_phy(o_SWnetOR,  zx_tmp_fi2d)
    755 IF (vars_defined) zx_tmp_fi2d(1:klon) = solsw(1:klon)/(1.-albsol1(1:klon))
    756       CALL histwrite_phy(o_SWdownOR,  zx_tmp_fi2d)
    757       CALL histwrite_phy(o_LWdownOR, sollwdown)
    758       CALL histwrite_phy(o_snowl, snow_lsc)
    759       CALL histwrite_phy(o_solldown, sollwdown)
    760       CALL histwrite_phy(o_dtsvdfo, d_ts(:,is_oce))
    761       CALL histwrite_phy(o_dtsvdft, d_ts(:,is_ter))
    762       CALL histwrite_phy(o_dtsvdfg,  d_ts(:,is_lic))
    763       CALL histwrite_phy(o_dtsvdfi, d_ts(:,is_sic))
    764       CALL histwrite_phy(o_rugs, zxrugs)
    765 ! OD550 per species
    766       IF (new_aod .and. (.not. aerosol_couple)) THEN
     709       IF (type_ocean=='slab ') THEN
     710          CALL histwrite_phy(o_slab_bils, slab_wfbils)
     711       ENDIF !type_ocean == force/slab
     712       CALL histwrite_phy(o_weakinv, weak_inversion)
     713       CALL histwrite_phy(o_dthmin, dthmin)
     714       CALL histwrite_phy(o_cldtau, cldtau)
     715       CALL histwrite_phy(o_cldemi, cldemi)
     716       CALL histwrite_phy(o_pr_con_l, pmflxr(:,1:klev))
     717       CALL histwrite_phy(o_pr_con_i, pmflxs(:,1:klev))
     718       CALL histwrite_phy(o_pr_lsc_l, prfl(:,1:klev))
     719       CALL histwrite_phy(o_pr_lsc_i, psfl(:,1:klev))
     720       CALL histwrite_phy(o_re, re)
     721       CALL histwrite_phy(o_fl, fl)
     722       IF (vars_defined) THEN
     723          DO i=1, klon
     724             zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
     725          ENDDO
     726       ENDIF
     727       CALL histwrite_phy(o_rh2m, zx_tmp_fi2d)
     728
     729       IF (vars_defined) THEN
     730          DO i=1, klon
     731             zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
     732          ENDDO
     733       ENDIF
     734       CALL histwrite_phy(o_rh2m_min, zx_tmp_fi2d)
     735
     736       IF (vars_defined) THEN
     737          DO i=1, klon
     738             zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
     739          ENDDO
     740       ENDIF
     741       CALL histwrite_phy(o_rh2m_max, zx_tmp_fi2d)
     742
     743       CALL histwrite_phy(o_qsat2m, qsat2m)
     744       CALL histwrite_phy(o_tpot, tpot)
     745       CALL histwrite_phy(o_tpote, tpote)
     746       IF (vars_defined) zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, is_ter)
     747       CALL histwrite_phy(o_SWnetOR,  zx_tmp_fi2d)
     748       IF (vars_defined) zx_tmp_fi2d(1:klon) = solsw(1:klon)/(1.-albsol1(1:klon))
     749       CALL histwrite_phy(o_SWdownOR,  zx_tmp_fi2d)
     750       CALL histwrite_phy(o_LWdownOR, sollwdown)
     751       CALL histwrite_phy(o_snowl, snow_lsc)
     752       CALL histwrite_phy(o_solldown, sollwdown)
     753       CALL histwrite_phy(o_dtsvdfo, d_ts(:,is_oce))
     754       CALL histwrite_phy(o_dtsvdft, d_ts(:,is_ter))
     755       CALL histwrite_phy(o_dtsvdfg,  d_ts(:,is_lic))
     756       CALL histwrite_phy(o_dtsvdfi, d_ts(:,is_sic))
     757       CALL histwrite_phy(o_rugs, zxrugs)
     758       ! OD550 per species
     759       IF (new_aod .and. (.not. aerosol_couple)) THEN
    767760          IF (ok_ade.OR.ok_aie) THEN
    768       CALL histwrite_phy(o_od550aer, od550aer)
    769       CALL histwrite_phy(o_od865aer, od865aer)
    770       CALL histwrite_phy(o_absvisaer, absvisaer)
    771       CALL histwrite_phy(o_od550lt1aer, od550lt1aer)
    772       CALL histwrite_phy(o_sconcso4, sconcso4)
    773       CALL histwrite_phy(o_sconcoa, sconcoa)
    774       CALL histwrite_phy(o_sconcbc, sconcbc)
    775       CALL histwrite_phy(o_sconcss, sconcss)
    776       CALL histwrite_phy(o_sconcdust, sconcdust)
    777       CALL histwrite_phy(o_concso4, concso4)
    778       CALL histwrite_phy(o_concoa, concoa)
    779       CALL histwrite_phy(o_concbc, concbc)
    780       CALL histwrite_phy(o_concss, concss)
    781       CALL histwrite_phy(o_concdust, concdust)
    782       CALL histwrite_phy(o_loadso4, loadso4)
    783       CALL histwrite_phy(o_loadoa, loadoa)
    784       CALL histwrite_phy(o_loadbc, loadbc)
    785       CALL histwrite_phy(o_loadss, loadss)
    786       CALL histwrite_phy(o_loaddust, loaddust)
    787 !--STRAT AER
     761             CALL histwrite_phy(o_od550aer, od550aer)
     762             CALL histwrite_phy(o_od865aer, od865aer)
     763             CALL histwrite_phy(o_absvisaer, absvisaer)
     764             CALL histwrite_phy(o_od550lt1aer, od550lt1aer)
     765             CALL histwrite_phy(o_sconcso4, sconcso4)
     766             CALL histwrite_phy(o_sconcoa, sconcoa)
     767             CALL histwrite_phy(o_sconcbc, sconcbc)
     768             CALL histwrite_phy(o_sconcss, sconcss)
     769             CALL histwrite_phy(o_sconcdust, sconcdust)
     770             CALL histwrite_phy(o_concso4, concso4)
     771             CALL histwrite_phy(o_concoa, concoa)
     772             CALL histwrite_phy(o_concbc, concbc)
     773             CALL histwrite_phy(o_concss, concss)
     774             CALL histwrite_phy(o_concdust, concdust)
     775             CALL histwrite_phy(o_loadso4, loadso4)
     776             CALL histwrite_phy(o_loadoa, loadoa)
     777             CALL histwrite_phy(o_loadbc, loadbc)
     778             CALL histwrite_phy(o_loadss, loadss)
     779             CALL histwrite_phy(o_loaddust, loaddust)
     780             !--STRAT AER
    788781          ENDIF
    789782          IF (ok_ade.OR.ok_aie.OR.flag_aerosol_strat) THEN
    790           DO naero = 1, naero_spc
    791       CALL histwrite_phy(o_tausumaero(naero), &
    792        tausum_aero(:,2,naero) )
    793           END DO
    794           ENDIF
    795       ENDIF
     783             DO naero = 1, naero_spc
     784                CALL histwrite_phy(o_tausumaero(naero), &
     785                     tausum_aero(:,2,naero) )
     786             END DO
     787          ENDIF
     788       ENDIF
    796789       IF (ok_ade) THEN
    797       CALL histwrite_phy(o_topswad, topswad_aero)
    798       CALL histwrite_phy(o_topswad0, topswad0_aero)
    799       CALL histwrite_phy(o_solswad, solswad_aero)
    800       CALL histwrite_phy(o_solswad0, solswad0_aero)
    801 !====MS forcing diagnostics
    802         if (new_aod) then
    803       CALL histwrite_phy(o_swtoaas_nat, topsw_aero(:,1))
    804       CALL histwrite_phy(o_swsrfas_nat, solsw_aero(:,1))
    805       CALL histwrite_phy(o_swtoacs_nat, topsw0_aero(:,1))
    806       CALL histwrite_phy(o_swsrfcs_nat, solsw0_aero(:,1))
    807 !ant
    808       CALL histwrite_phy(o_swtoaas_ant, topsw_aero(:,2))
    809       CALL histwrite_phy(o_swsrfas_ant, solsw_aero(:,2))
    810       CALL histwrite_phy(o_swtoacs_ant, topsw0_aero(:,2))
    811       CALL histwrite_phy(o_swsrfcs_ant, solsw0_aero(:,2))
    812 !cf
    813         if (.not. aerosol_couple) then
    814       CALL histwrite_phy(o_swtoacf_nat, topswcf_aero(:,1))
    815       CALL histwrite_phy(o_swsrfcf_nat, solswcf_aero(:,1))
    816       CALL histwrite_phy(o_swtoacf_ant, topswcf_aero(:,2))
    817       CALL histwrite_phy(o_swsrfcf_ant, solswcf_aero(:,2))
    818       CALL histwrite_phy(o_swtoacf_zero,topswcf_aero(:,3))
    819       CALL histwrite_phy(o_swsrfcf_zero,solswcf_aero(:,3))
    820         endif
    821     endif ! new_aod
    822 !====MS forcing diagnostics
     790          CALL histwrite_phy(o_topswad, topswad_aero)
     791          CALL histwrite_phy(o_topswad0, topswad0_aero)
     792          CALL histwrite_phy(o_solswad, solswad_aero)
     793          CALL histwrite_phy(o_solswad0, solswad0_aero)
     794          !====MS forcing diagnostics
     795          if (new_aod) then
     796             CALL histwrite_phy(o_swtoaas_nat, topsw_aero(:,1))
     797             CALL histwrite_phy(o_swsrfas_nat, solsw_aero(:,1))
     798             CALL histwrite_phy(o_swtoacs_nat, topsw0_aero(:,1))
     799             CALL histwrite_phy(o_swsrfcs_nat, solsw0_aero(:,1))
     800             !ant
     801             CALL histwrite_phy(o_swtoaas_ant, topsw_aero(:,2))
     802             CALL histwrite_phy(o_swsrfas_ant, solsw_aero(:,2))
     803             CALL histwrite_phy(o_swtoacs_ant, topsw0_aero(:,2))
     804             CALL histwrite_phy(o_swsrfcs_ant, solsw0_aero(:,2))
     805             !cf
     806             if (.not. aerosol_couple) then
     807                CALL histwrite_phy(o_swtoacf_nat, topswcf_aero(:,1))
     808                CALL histwrite_phy(o_swsrfcf_nat, solswcf_aero(:,1))
     809                CALL histwrite_phy(o_swtoacf_ant, topswcf_aero(:,2))
     810                CALL histwrite_phy(o_swsrfcf_ant, solswcf_aero(:,2))
     811                CALL histwrite_phy(o_swtoacf_zero,topswcf_aero(:,3))
     812                CALL histwrite_phy(o_swsrfcf_zero,solswcf_aero(:,3))
     813             endif
     814          endif ! new_aod
     815          !====MS forcing diagnostics
    823816       ENDIF
    824817       IF (ok_aie) THEN
    825       CALL histwrite_phy(o_topswai, topswai_aero)
    826       CALL histwrite_phy(o_solswai, solswai_aero)
    827       CALL histwrite_phy(o_scdnc, scdnc)
    828       CALL histwrite_phy(o_cldncl, cldncl)
    829       CALL histwrite_phy(o_reffclws, reffclws)
    830       CALL histwrite_phy(o_reffclwc, reffclwc)
    831       CALL histwrite_phy(o_cldnvi, cldnvi)
    832       CALL histwrite_phy(o_lcc, lcc)
    833       CALL histwrite_phy(o_lcc3d, lcc3d)
    834       CALL histwrite_phy(o_lcc3dcon, lcc3dcon)
    835       CALL histwrite_phy(o_lcc3dstra, lcc3dstra)
    836       CALL histwrite_phy(o_reffclwtop, reffclwtop)
    837        ENDIF
    838 ! Champs 3D:
     818          CALL histwrite_phy(o_topswai, topswai_aero)
     819          CALL histwrite_phy(o_solswai, solswai_aero)
     820          CALL histwrite_phy(o_scdnc, scdnc)
     821          CALL histwrite_phy(o_cldncl, cldncl)
     822          CALL histwrite_phy(o_reffclws, reffclws)
     823          CALL histwrite_phy(o_reffclwc, reffclwc)
     824          CALL histwrite_phy(o_cldnvi, cldnvi)
     825          CALL histwrite_phy(o_lcc, lcc)
     826          CALL histwrite_phy(o_lcc3d, lcc3d)
     827          CALL histwrite_phy(o_lcc3dcon, lcc3dcon)
     828          CALL histwrite_phy(o_lcc3dstra, lcc3dstra)
     829          CALL histwrite_phy(o_reffclwtop, reffclwtop)
     830       ENDIF
     831       ! Champs 3D:
    839832       IF (ok_ade .OR. ok_aie) then
    840       CALL histwrite_phy(o_ec550aer, ec550aer)
    841        ENDIF
    842       CALL histwrite_phy(o_lwcon, flwc)
    843       CALL histwrite_phy(o_iwcon, fiwc)
    844       CALL histwrite_phy(o_temp, t_seri)
    845       CALL histwrite_phy(o_theta, theta)
    846       CALL histwrite_phy(o_ovapinit, qx(:,:,ivap))
    847       CALL histwrite_phy(o_ovap, q_seri)
    848       CALL histwrite_phy(o_oliq, ql_seri)
    849       CALL histwrite_phy(o_geop, zphi)
    850       CALL histwrite_phy(o_vitu, u_seri)
    851       CALL histwrite_phy(o_vitv, v_seri)
    852       CALL histwrite_phy(o_vitw, omega)
    853       CALL histwrite_phy(o_pres, pplay)
    854       CALL histwrite_phy(o_paprs, paprs(:,1:klev))
    855 IF (vars_defined) THEN
    856          DO i=1, klon
    857           zx_tmp_fi3d1(i,1)= pphis(i)/RG
    858 !020611   zx_tmp_fi3d(i,1)= pphis(i)/RG
    859          ENDDO
    860          DO k=1, klev
    861 !020611        DO k=1, klev-1
    862          DO i=1, klon
    863 !020611         zx_tmp_fi3d(i,k+1)= zx_tmp_fi3d(i,k) - (t_seri(i,k) *RD *
    864           zx_tmp_fi3d1(i,k+1)= zx_tmp_fi3d1(i,k) - (t_seri(i,k) *RD *  &
    865           (paprs(i,k+1) - paprs(i,k))) / ( pplay(i,k) * RG )
    866          ENDDO
    867          ENDDO
    868 ENDIF
    869       CALL histwrite_phy(o_zfull,zx_tmp_fi3d1(:,2:klevp1))
    870 !020611    $o_zfull%name,itau_w,zx_tmp_fi3d)
    871 
    872 IF (vars_defined)  THEN
    873          DO i=1, klon
    874           zx_tmp_fi3d(i,1)= pphis(i)/RG - ( &
    875           (t_seri(i,1)+zxtsol(i))/2. *RD * &
    876           (pplay(i,1) - paprs(i,1)))/( (paprs(i,1)+pplay(i,1))/2.* RG)
    877          ENDDO
    878          DO k=1, klev-1
    879          DO i=1, klon
    880           zx_tmp_fi3d(i,k+1)= zx_tmp_fi3d(i,k) - ( &
    881           (t_seri(i,k)+t_seri(i,k+1))/2. *RD *  &
    882           (pplay(i,k+1) - pplay(i,k))) / ( paprs(i,k) * RG )
    883          ENDDO
    884          ENDDO
    885 ENDIF
    886       CALL histwrite_phy(o_zhalf, zx_tmp_fi3d)
    887       CALL histwrite_phy(o_rneb, cldfra)
    888       CALL histwrite_phy(o_rnebcon, rnebcon)
    889       CALL histwrite_phy(o_rnebls, rneb)
    890       CALL histwrite_phy(o_rhum, zx_rh)
    891       CALL histwrite_phy(o_ozone, &
    892        wo(:, :, 1) * dobson_u * 1e3 / zmasse / rmo3 * rmd)
    893 
    894       IF (read_climoz == 2) THEN
    895       CALL histwrite_phy(o_ozone_light, &
    896        wo(:, :, 2) * dobson_u * 1e3 / zmasse / rmo3 * rmd)
    897       ENDIF
    898 
    899       CALL histwrite_phy(o_dtphy, d_t)
    900       CALL histwrite_phy(o_dqphy,  d_qx(:,:,ivap))
    901         DO nsrf=1, nbsrf
    902 IF (vars_defined) zx_tmp_fi2d(1 : klon) = falb1( 1 : klon, nsrf)
    903       CALL histwrite_phy(o_albe_srf(nsrf), zx_tmp_fi2d)
    904 IF (vars_defined) zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf)
    905       CALL histwrite_phy(o_rugs_srf(nsrf), zx_tmp_fi2d)
    906 IF (vars_defined) zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf)
    907       CALL histwrite_phy(o_ages_srf(nsrf), zx_tmp_fi2d)
    908         ENDDO !nsrf=1, nbsrf
    909       CALL histwrite_phy(o_alb1, albsol1)
    910       CALL histwrite_phy(o_alb2, albsol2)
    911 !FH Sorties pour la couche limite
    912       if (iflag_pbl>1) then
    913       zx_tmp_fi3d=0.
    914 IF (vars_defined) THEN
    915       do nsrf=1,nbsrf
    916          do k=1,klev
    917           zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k) &
    918           +pctsrf(:,nsrf)*pbl_tke(:,k,nsrf)
    919          enddo
    920       enddo
    921 ENDIF
    922       CALL histwrite_phy(o_tke, zx_tmp_fi3d)
    923 
    924       CALL histwrite_phy(o_tke_max, zx_tmp_fi3d)
    925       ENDIF
    926 
    927       CALL histwrite_phy(o_kz, coefh(:,:,is_ave))
    928 
    929       CALL histwrite_phy(o_kz_max, coefh(:,:,is_ave))
    930 
    931       CALL histwrite_phy(o_clwcon, clwcon0)
    932       CALL histwrite_phy(o_dtdyn, d_t_dyn)
    933       CALL histwrite_phy(o_dqdyn, d_q_dyn)
    934       CALL histwrite_phy(o_dudyn, d_u_dyn)
    935       CALL histwrite_phy(o_dvdyn, d_v_dyn)
    936 
    937 IF (vars_defined) THEN
    938       zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys
    939 ENDIF
    940       CALL histwrite_phy(o_dtcon, zx_tmp_fi3d)
    941       if(iflag_thermals.eq.1)then
    942 IF (vars_defined) THEN
    943       zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + &
    944                                  d_t_ajsb(1:klon,1:klev)/pdtphys
    945 ENDIF
    946       CALL histwrite_phy(o_tntc, zx_tmp_fi3d)
    947       else if(iflag_thermals.gt.1.and.iflag_wake.EQ.1)then
    948 IF (vars_defined) THEN
    949       zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + &
    950                                  d_t_ajs(1:klon,1:klev)/pdtphys + &
    951                                  d_t_wake(1:klon,1:klev)/pdtphys
    952 ENDIF
    953       CALL histwrite_phy(o_tntc, zx_tmp_fi3d)
    954       endif
    955 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys
    956       CALL histwrite_phy(o_ducon, zx_tmp_fi3d)
    957 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_con(1:klon,1:klev)/pdtphys
    958       CALL histwrite_phy(o_dvcon, zx_tmp_fi3d)
    959 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
    960       CALL histwrite_phy(o_dqcon, zx_tmp_fi3d)
    961 
    962       IF(iflag_thermals.EQ.1) THEN
    963 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
    964         CALL histwrite_phy(o_tnhusc, zx_tmp_fi3d)
    965       ELSE IF(iflag_thermals.GT.1.AND.iflag_wake.EQ.1) THEN
    966 IF (vars_defined) THEN
    967          zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys + &
    968                                      d_q_ajs(1:klon,1:klev)/pdtphys + &
    969                                      d_q_wake(1:klon,1:klev)/pdtphys
    970 ENDIF
    971          CALL histwrite_phy(o_tnhusc, zx_tmp_fi3d)
    972       ENDIF
    973 
    974 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lsc(1:klon,1:klev)/pdtphys
    975       CALL histwrite_phy(o_dtlsc, zx_tmp_fi3d)
    976 IF (vars_defined) zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+ &
    977                                  d_t_eva(1:klon,1:klev))/pdtphys
    978       CALL histwrite_phy(o_dtlschr, zx_tmp_fi3d)
    979 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys
    980       CALL histwrite_phy(o_dqlsc, zx_tmp_fi3d)
    981 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=beta_prec(1:klon,1:klev)
    982       CALL histwrite_phy(o_beta_prec, zx_tmp_fi3d)
     833          CALL histwrite_phy(o_ec550aer, ec550aer)
     834       ENDIF
     835       CALL histwrite_phy(o_lwcon, flwc)
     836       CALL histwrite_phy(o_iwcon, fiwc)
     837       CALL histwrite_phy(o_temp, t_seri)
     838       CALL histwrite_phy(o_theta, theta)
     839       CALL histwrite_phy(o_ovapinit, qx(:,:,ivap))
     840       CALL histwrite_phy(o_ovap, q_seri)
     841       CALL histwrite_phy(o_oliq, ql_seri)
     842       CALL histwrite_phy(o_geop, zphi)
     843       CALL histwrite_phy(o_vitu, u_seri)
     844       CALL histwrite_phy(o_vitv, v_seri)
     845       CALL histwrite_phy(o_vitw, omega)
     846       CALL histwrite_phy(o_pres, pplay)
     847       CALL histwrite_phy(o_paprs, paprs(:,1:klev))
     848       IF (vars_defined) THEN
     849          DO i=1, klon
     850             zx_tmp_fi3d1(i,1)= pphis(i)/RG
     851             !020611   zx_tmp_fi3d(i,1)= pphis(i)/RG
     852          ENDDO
     853          DO k=1, klev
     854             !020611        DO k=1, klev-1
     855             DO i=1, klon
     856                !020611         zx_tmp_fi3d(i,k+1)= zx_tmp_fi3d(i,k) - (t_seri(i,k) *RD *
     857                zx_tmp_fi3d1(i,k+1)= zx_tmp_fi3d1(i,k) - (t_seri(i,k) *RD *  &
     858                     (paprs(i,k+1) - paprs(i,k))) / ( pplay(i,k) * RG )
     859             ENDDO
     860          ENDDO
     861       ENDIF
     862       CALL histwrite_phy(o_zfull,zx_tmp_fi3d1(:,2:klevp1))
     863       !020611    $o_zfull%name,itau_w,zx_tmp_fi3d)
     864
     865       IF (vars_defined)  THEN
     866          DO i=1, klon
     867             zx_tmp_fi3d(i,1)= pphis(i)/RG - ( &
     868                  (t_seri(i,1)+zxtsol(i))/2. *RD * &
     869                  (pplay(i,1) - paprs(i,1)))/( (paprs(i,1)+pplay(i,1))/2.* RG)
     870          ENDDO
     871          DO k=1, klev-1
     872             DO i=1, klon
     873                zx_tmp_fi3d(i,k+1)= zx_tmp_fi3d(i,k) - ( &
     874                     (t_seri(i,k)+t_seri(i,k+1))/2. *RD *  &
     875                     (pplay(i,k+1) - pplay(i,k))) / ( paprs(i,k) * RG )
     876             ENDDO
     877          ENDDO
     878       ENDIF
     879       CALL histwrite_phy(o_zhalf, zx_tmp_fi3d)
     880       CALL histwrite_phy(o_rneb, cldfra)
     881       CALL histwrite_phy(o_rnebcon, rnebcon)
     882       CALL histwrite_phy(o_rnebls, rneb)
     883       CALL histwrite_phy(o_rhum, zx_rh)
     884       CALL histwrite_phy(o_ozone, &
     885            wo(:, :, 1) * dobson_u * 1e3 / zmasse / rmo3 * rmd)
     886
     887       IF (read_climoz == 2) THEN
     888          CALL histwrite_phy(o_ozone_light, &
     889               wo(:, :, 2) * dobson_u * 1e3 / zmasse / rmo3 * rmd)
     890       ENDIF
     891
     892       CALL histwrite_phy(o_dtphy, d_t)
     893       CALL histwrite_phy(o_dqphy,  d_qx(:,:,ivap))
     894       DO nsrf=1, nbsrf
     895          IF (vars_defined) zx_tmp_fi2d(1 : klon) = falb1( 1 : klon, nsrf)
     896          CALL histwrite_phy(o_albe_srf(nsrf), zx_tmp_fi2d)
     897          IF (vars_defined) zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf)
     898          CALL histwrite_phy(o_rugs_srf(nsrf), zx_tmp_fi2d)
     899          IF (vars_defined) zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf)
     900          CALL histwrite_phy(o_ages_srf(nsrf), zx_tmp_fi2d)
     901       ENDDO !nsrf=1, nbsrf
     902       CALL histwrite_phy(o_alb1, albsol1)
     903       CALL histwrite_phy(o_alb2, albsol2)
     904       !FH Sorties pour la couche limite
     905       if (iflag_pbl>1) then
     906          zx_tmp_fi3d=0.
     907          IF (vars_defined) THEN
     908             do nsrf=1,nbsrf
     909                do k=1,klev
     910                   zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k) &
     911                        +pctsrf(:,nsrf)*pbl_tke(:,k,nsrf)
     912                enddo
     913             enddo
     914          ENDIF
     915          CALL histwrite_phy(o_tke, zx_tmp_fi3d)
     916
     917          CALL histwrite_phy(o_tke_max, zx_tmp_fi3d)
     918       ENDIF
     919
     920       CALL histwrite_phy(o_kz, coefh(:,:,is_ave))
     921
     922       CALL histwrite_phy(o_kz_max, coefh(:,:,is_ave))
     923
     924       CALL histwrite_phy(o_clwcon, clwcon0)
     925       CALL histwrite_phy(o_dtdyn, d_t_dyn)
     926       CALL histwrite_phy(o_dqdyn, d_q_dyn)
     927       CALL histwrite_phy(o_dudyn, d_u_dyn)
     928       CALL histwrite_phy(o_dvdyn, d_v_dyn)
     929
     930       IF (vars_defined) THEN
     931          zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys
     932       ENDIF
     933       CALL histwrite_phy(o_dtcon, zx_tmp_fi3d)
     934       if(iflag_thermals.eq.1)then
     935          IF (vars_defined) THEN
     936             zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + &
     937                  d_t_ajsb(1:klon,1:klev)/pdtphys
     938          ENDIF
     939          CALL histwrite_phy(o_tntc, zx_tmp_fi3d)
     940       else if(iflag_thermals.gt.1.and.iflag_wake.EQ.1)then
     941          IF (vars_defined) THEN
     942             zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + &
     943                  d_t_ajs(1:klon,1:klev)/pdtphys + &
     944                  d_t_wake(1:klon,1:klev)/pdtphys
     945          ENDIF
     946          CALL histwrite_phy(o_tntc, zx_tmp_fi3d)
     947       endif
     948       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys
     949       CALL histwrite_phy(o_ducon, zx_tmp_fi3d)
     950       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_con(1:klon,1:klev)/pdtphys
     951       CALL histwrite_phy(o_dvcon, zx_tmp_fi3d)
     952       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
     953       CALL histwrite_phy(o_dqcon, zx_tmp_fi3d)
     954
     955       IF(iflag_thermals.EQ.1) THEN
     956          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
     957          CALL histwrite_phy(o_tnhusc, zx_tmp_fi3d)
     958       ELSE IF(iflag_thermals.GT.1.AND.iflag_wake.EQ.1) THEN
     959          IF (vars_defined) THEN
     960             zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys + &
     961                  d_q_ajs(1:klon,1:klev)/pdtphys + &
     962                  d_q_wake(1:klon,1:klev)/pdtphys
     963          ENDIF
     964          CALL histwrite_phy(o_tnhusc, zx_tmp_fi3d)
     965       ENDIF
     966
     967       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lsc(1:klon,1:klev)/pdtphys
     968       CALL histwrite_phy(o_dtlsc, zx_tmp_fi3d)
     969       IF (vars_defined) zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+ &
     970            d_t_eva(1:klon,1:klev))/pdtphys
     971       CALL histwrite_phy(o_dtlschr, zx_tmp_fi3d)
     972       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys
     973       CALL histwrite_phy(o_dqlsc, zx_tmp_fi3d)
     974       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=beta_prec(1:klon,1:klev)
     975       CALL histwrite_phy(o_beta_prec, zx_tmp_fi3d)
    983976!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    984 ! Sorties specifiques a la separation thermiques/non thermiques
     977       ! Sorties specifiques a la separation thermiques/non thermiques
    985978       if (iflag_thermals>=1) then
    986 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscth(1:klon,1:klev)/pdtphys
    987       CALL histwrite_phy(o_dtlscth, zx_tmp_fi3d)
    988 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscst(1:klon,1:klev)/pdtphys
    989       CALL histwrite_phy(o_dtlscst, zx_tmp_fi3d)
    990 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscth(1:klon,1:klev)/pdtphys
    991       CALL histwrite_phy(o_dqlscth, zx_tmp_fi3d)
    992 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscst(1:klon,1:klev)/pdtphys
    993       CALL histwrite_phy(o_dqlscst, zx_tmp_fi3d)
    994       CALL histwrite_phy(o_plulth, plul_th)
    995       CALL histwrite_phy(o_plulst, plul_st)
    996 IF (vars_defined) THEN
    997       do k=1,klev
    998       do i=1,klon
    999           if (ptconvth(i,k)) then
    1000            zx_tmp_fi3d(i,k)=1.
    1001           else
    1002            zx_tmp_fi3d(i,k)=0.
    1003           endif
    1004       enddo
    1005       enddo
    1006 ENDIF
    1007       CALL histwrite_phy(o_ptconvth, zx_tmp_fi3d)
    1008 IF (vars_defined) THEN
    1009       do i=1,klon
    1010            zx_tmp_fi2d(1:klon)=lmax_th(:)
    1011       enddo
    1012 ENDIF
    1013       CALL histwrite_phy(o_lmaxth, zx_tmp_fi2d)
    1014       endif ! iflag_thermals>=1
     979          IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscth(1:klon,1:klev)/pdtphys
     980          CALL histwrite_phy(o_dtlscth, zx_tmp_fi3d)
     981          IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscst(1:klon,1:klev)/pdtphys
     982          CALL histwrite_phy(o_dtlscst, zx_tmp_fi3d)
     983          IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscth(1:klon,1:klev)/pdtphys
     984          CALL histwrite_phy(o_dqlscth, zx_tmp_fi3d)
     985          IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscst(1:klon,1:klev)/pdtphys
     986          CALL histwrite_phy(o_dqlscst, zx_tmp_fi3d)
     987          CALL histwrite_phy(o_plulth, plul_th)
     988          CALL histwrite_phy(o_plulst, plul_st)
     989          IF (vars_defined) THEN
     990             do k=1,klev
     991                do i=1,klon
     992                   if (ptconvth(i,k)) then
     993                      zx_tmp_fi3d(i,k)=1.
     994                   else
     995                      zx_tmp_fi3d(i,k)=0.
     996                   endif
     997                enddo
     998             enddo
     999          ENDIF
     1000          CALL histwrite_phy(o_ptconvth, zx_tmp_fi3d)
     1001          IF (vars_defined) THEN
     1002             do i=1,klon
     1003                zx_tmp_fi2d(1:klon)=lmax_th(:)
     1004             enddo
     1005          ENDIF
     1006          CALL histwrite_phy(o_lmaxth, zx_tmp_fi2d)
     1007       endif ! iflag_thermals>=1
    10151008!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    1016 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys
    1017       CALL histwrite_phy(o_dtvdf, zx_tmp_fi3d)
    1018 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_diss(1:klon,1:klev)/pdtphys
    1019       CALL histwrite_phy(o_dtdis, zx_tmp_fi3d)
    1020 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
    1021       CALL histwrite_phy(o_dqvdf, zx_tmp_fi3d)
    1022 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys
    1023       CALL histwrite_phy(o_dteva, zx_tmp_fi3d)
    1024 IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys
    1025       CALL histwrite_phy(o_dqeva, zx_tmp_fi3d)
    1026       zpt_conv = 0.
    1027       WHERE (ptconv) zpt_conv = 1.
    1028       CALL histwrite_phy(o_ptconv, zpt_conv)
    1029       CALL histwrite_phy(o_ratqs, ratqs)
    1030 IF (vars_defined) THEN
    1031       zx_tmp_fi3d(1:klon,1:klev)=d_t_ajs(1:klon,1:klev)/pdtphys - &
    1032                                  d_t_ajsb(1:klon,1:klev)/pdtphys
    1033 ENDIF
    1034       CALL histwrite_phy(o_dtthe, zx_tmp_fi3d)
     1009       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys
     1010       CALL histwrite_phy(o_dtvdf, zx_tmp_fi3d)
     1011       IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_diss(1:klon,1:klev)/pdtphys
     1012       CALL histwrite_phy(o_dtdis, zx_tmp_fi3d)
     1013       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
     1014       CALL histwrite_phy(o_dqvdf, zx_tmp_fi3d)
     1015       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys
     1016       CALL histwrite_phy(o_dteva, zx_tmp_fi3d)
     1017       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys
     1018       CALL histwrite_phy(o_dqeva, zx_tmp_fi3d)
     1019       zpt_conv = 0.
     1020       WHERE (ptconv) zpt_conv = 1.
     1021       CALL histwrite_phy(o_ptconv, zpt_conv)
     1022       CALL histwrite_phy(o_ratqs, ratqs)
     1023       IF (vars_defined) THEN
     1024          zx_tmp_fi3d(1:klon,1:klev)=d_t_ajs(1:klon,1:klev)/pdtphys - &
     1025               d_t_ajsb(1:klon,1:klev)/pdtphys
     1026       ENDIF
     1027       CALL histwrite_phy(o_dtthe, zx_tmp_fi3d)
    10351028       IF (iflag_thermals>=1) THEN
    1036 ! Pour l instant 0 a y reflichir pour les thermiques
    1037          zx_tmp_fi2d=0.
    1038       CALL histwrite_phy(o_ftime_th, zx_tmp_fi2d)
    1039       CALL histwrite_phy(o_f_th, fm_therm)
    1040       CALL histwrite_phy(o_e_th, entr_therm)
    1041       CALL histwrite_phy(o_w_th, zw2)
    1042       CALL histwrite_phy(o_q_th, zqasc)
    1043       CALL histwrite_phy(o_a_th, fraca)
    1044       CALL histwrite_phy(o_d_th, detr_therm)
    1045       CALL histwrite_phy(o_f0_th, f0)
    1046       CALL histwrite_phy(o_zmax_th, zmax_th)
    1047 IF (vars_defined) THEN
    1048       zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys - &
    1049                                  d_q_ajsb(1:klon,1:klev)/pdtphys
    1050 ENDIF
    1051       CALL histwrite_phy(o_dqthe, zx_tmp_fi3d)
    1052       ENDIF !iflag_thermals
    1053 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys
    1054       CALL histwrite_phy(o_dtajs, zx_tmp_fi3d)
    1055 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys
    1056       CALL histwrite_phy(o_dqajs, zx_tmp_fi3d)
    1057 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY
    1058       CALL histwrite_phy(o_dtswr, zx_tmp_fi3d)
    1059 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)/RDAY
    1060       CALL histwrite_phy(o_dtsw0, zx_tmp_fi3d)
    1061 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY
    1062       CALL histwrite_phy(o_dtlwr, zx_tmp_fi3d)
    1063 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)/RDAY
    1064       CALL histwrite_phy(o_dtlw0, zx_tmp_fi3d)
    1065 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)/pdtphys
    1066       CALL histwrite_phy(o_dtec, zx_tmp_fi3d)
    1067 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
    1068       CALL histwrite_phy(o_duvdf, zx_tmp_fi3d)
    1069 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
    1070       CALL histwrite_phy(o_dvvdf, zx_tmp_fi3d)
     1029          ! Pour l instant 0 a y reflichir pour les thermiques
     1030          zx_tmp_fi2d=0.
     1031          CALL histwrite_phy(o_ftime_th, zx_tmp_fi2d)
     1032          CALL histwrite_phy(o_f_th, fm_therm)
     1033          CALL histwrite_phy(o_e_th, entr_therm)
     1034          CALL histwrite_phy(o_w_th, zw2)
     1035          CALL histwrite_phy(o_q_th, zqasc)
     1036          CALL histwrite_phy(o_a_th, fraca)
     1037          CALL histwrite_phy(o_d_th, detr_therm)
     1038          CALL histwrite_phy(o_f0_th, f0)
     1039          CALL histwrite_phy(o_zmax_th, zmax_th)
     1040          IF (vars_defined) THEN
     1041             zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys - &
     1042                  d_q_ajsb(1:klon,1:klev)/pdtphys
     1043          ENDIF
     1044          CALL histwrite_phy(o_dqthe, zx_tmp_fi3d)
     1045       ENDIF !iflag_thermals
     1046       IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys
     1047       CALL histwrite_phy(o_dtajs, zx_tmp_fi3d)
     1048       IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys
     1049       CALL histwrite_phy(o_dqajs, zx_tmp_fi3d)
     1050       IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY
     1051       CALL histwrite_phy(o_dtswr, zx_tmp_fi3d)
     1052       IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)/RDAY
     1053       CALL histwrite_phy(o_dtsw0, zx_tmp_fi3d)
     1054       IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY
     1055       CALL histwrite_phy(o_dtlwr, zx_tmp_fi3d)
     1056       IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)/RDAY
     1057       CALL histwrite_phy(o_dtlw0, zx_tmp_fi3d)
     1058       IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)/pdtphys
     1059       CALL histwrite_phy(o_dtec, zx_tmp_fi3d)
     1060       IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
     1061       CALL histwrite_phy(o_duvdf, zx_tmp_fi3d)
     1062       IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
     1063       CALL histwrite_phy(o_dvvdf, zx_tmp_fi3d)
    10711064       IF (ok_orodr) THEN
    1072 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
    1073       CALL histwrite_phy(o_duoro, zx_tmp_fi3d)
    1074 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
    1075       CALL histwrite_phy(o_dvoro, zx_tmp_fi3d)
    1076 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_oro(1:klon,1:klev)/pdtphys
    1077       CALL histwrite_phy(o_dtoro, zx_tmp_fi3d)
    1078        ENDIF
    1079         IF (ok_orolf) THEN
    1080 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
    1081       CALL histwrite_phy(o_dulif, zx_tmp_fi3d)
    1082        ENDIF
    1083 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
    1084       CALL histwrite_phy(o_dvlif, zx_tmp_fi3d)
    1085 
    1086 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lif(1:klon,1:klev)/pdtphys
    1087       CALL histwrite_phy(o_dtlif, zx_tmp_fi3d)
     1065          IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
     1066          CALL histwrite_phy(o_duoro, zx_tmp_fi3d)
     1067          IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
     1068          CALL histwrite_phy(o_dvoro, zx_tmp_fi3d)
     1069          IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_oro(1:klon,1:klev)/pdtphys
     1070          CALL histwrite_phy(o_dtoro, zx_tmp_fi3d)
     1071       ENDIF
     1072       IF (ok_orolf) THEN
     1073          IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
     1074          CALL histwrite_phy(o_dulif, zx_tmp_fi3d)
     1075       ENDIF
     1076       IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
     1077       CALL histwrite_phy(o_dvlif, zx_tmp_fi3d)
     1078
     1079       IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lif(1:klon,1:klev)/pdtphys
     1080       CALL histwrite_phy(o_dtlif, zx_tmp_fi3d)
    10881081
    10891082       IF (ok_hines) THEN
    1090 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_hin(1:klon,1:klev)/pdtphys
    1091       CALL histwrite_phy(o_duhin, zx_tmp_fi3d)
    1092 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_hin(1:klon,1:klev)/pdtphys
    1093       CALL histwrite_phy(o_dvhin, zx_tmp_fi3d)
    1094 IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_hin(1:klon,1:klev)/pdtphys
    1095       CALL histwrite_phy(o_dthin, zx_tmp_fi3d)
    1096         ENDIF
    1097       CALL histwrite_phy(o_rsu, swup)
    1098       CALL histwrite_phy(o_rsd, swdn)
    1099       CALL histwrite_phy(o_rlu, lwup)
    1100       CALL histwrite_phy(o_rld, lwdn)
    1101       CALL histwrite_phy(o_rsucs, swup0)
    1102       CALL histwrite_phy(o_rsdcs, swdn0)
    1103       CALL histwrite_phy(o_rlucs, lwup0)
    1104       CALL histwrite_phy(o_rldcs, lwdn0)
    1105 IF(vars_defined) THEN
    1106       zx_tmp_fi3d(1:klon,1:klev)=d_t(1:klon,1:klev)+ &
    1107       d_t_dyn(1:klon,1:klev)
    1108 ENDIF
    1109       CALL histwrite_phy(o_tnt, zx_tmp_fi3d)
    1110 IF(vars_defined) THEN
    1111       zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY - &
    1112       cool(1:klon,1:klev)/RDAY
    1113 ENDIF
    1114       CALL histwrite_phy(o_tntr, zx_tmp_fi3d)
    1115 IF(vars_defined) THEN
    1116       zx_tmp_fi3d(1:klon,1:klev)= (d_t_lsc(1:klon,1:klev)+ &
    1117                                    d_t_eva(1:klon,1:klev)+ &
    1118                                    d_t_vdf(1:klon,1:klev))/pdtphys
    1119 ENDIF
    1120       CALL histwrite_phy(o_tntscpbl, zx_tmp_fi3d)
    1121 IF(vars_defined) THEN
    1122       zx_tmp_fi3d(1:klon,1:klev)=d_qx(1:klon,1:klev,ivap)+ &
    1123       d_q_dyn(1:klon,1:klev)
    1124 ENDIF
    1125       CALL histwrite_phy(o_tnhus, zx_tmp_fi3d)
    1126 IF(vars_defined) THEN
    1127       zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys+ &
    1128                                  d_q_eva(1:klon,1:klev)/pdtphys
    1129 ENDIF
    1130       CALL histwrite_phy(o_tnhusscpbl, zx_tmp_fi3d)
    1131       CALL histwrite_phy(o_evu, coefm(:,:,is_ave))
    1132 IF(vars_defined) THEN
    1133       zx_tmp_fi3d(1:klon,1:klev)=q_seri(1:klon,1:klev)+ &
    1134                                  ql_seri(1:klon,1:klev)
    1135 ENDIF
    1136       CALL histwrite_phy(o_h2o, zx_tmp_fi3d)
     1083          IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_hin(1:klon,1:klev)/pdtphys
     1084          CALL histwrite_phy(o_duhin, zx_tmp_fi3d)
     1085          IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_hin(1:klon,1:klev)/pdtphys
     1086          CALL histwrite_phy(o_dvhin, zx_tmp_fi3d)
     1087          IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_hin(1:klon,1:klev)/pdtphys
     1088          CALL histwrite_phy(o_dthin, zx_tmp_fi3d)
     1089       ENDIF
     1090       CALL histwrite_phy(o_rsu, swup)
     1091       CALL histwrite_phy(o_rsd, swdn)
     1092       CALL histwrite_phy(o_rlu, lwup)
     1093       CALL histwrite_phy(o_rld, lwdn)
     1094       CALL histwrite_phy(o_rsucs, swup0)
     1095       CALL histwrite_phy(o_rsdcs, swdn0)
     1096       CALL histwrite_phy(o_rlucs, lwup0)
     1097       CALL histwrite_phy(o_rldcs, lwdn0)
     1098       IF(vars_defined) THEN
     1099          zx_tmp_fi3d(1:klon,1:klev)=d_t(1:klon,1:klev)+ &
     1100               d_t_dyn(1:klon,1:klev)
     1101       ENDIF
     1102       CALL histwrite_phy(o_tnt, zx_tmp_fi3d)
     1103       IF(vars_defined) THEN
     1104          zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY - &
     1105               cool(1:klon,1:klev)/RDAY
     1106       ENDIF
     1107       CALL histwrite_phy(o_tntr, zx_tmp_fi3d)
     1108       IF(vars_defined) THEN
     1109          zx_tmp_fi3d(1:klon,1:klev)= (d_t_lsc(1:klon,1:klev)+ &
     1110               d_t_eva(1:klon,1:klev)+ &
     1111               d_t_vdf(1:klon,1:klev))/pdtphys
     1112       ENDIF
     1113       CALL histwrite_phy(o_tntscpbl, zx_tmp_fi3d)
     1114       IF(vars_defined) THEN
     1115          zx_tmp_fi3d(1:klon,1:klev)=d_qx(1:klon,1:klev,ivap)+ &
     1116               d_q_dyn(1:klon,1:klev)
     1117       ENDIF
     1118       CALL histwrite_phy(o_tnhus, zx_tmp_fi3d)
     1119       IF(vars_defined) THEN
     1120          zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys+ &
     1121               d_q_eva(1:klon,1:klev)/pdtphys
     1122       ENDIF
     1123       CALL histwrite_phy(o_tnhusscpbl, zx_tmp_fi3d)
     1124       CALL histwrite_phy(o_evu, coefm(:,:,is_ave))
     1125       IF(vars_defined) THEN
     1126          zx_tmp_fi3d(1:klon,1:klev)=q_seri(1:klon,1:klev)+ &
     1127               ql_seri(1:klon,1:klev)
     1128       ENDIF
     1129       CALL histwrite_phy(o_h2o, zx_tmp_fi3d)
    11371130       if (iflag_con >= 3) then
    1138 IF(vars_defined) THEN
     1131          IF(vars_defined) THEN
    11391132             zx_tmp_fi3d(1:klon,1:klev)=-1 * (dnwd(1:klon,1:klev)+ &
    11401133                  dnwd0(1:klon,1:klev))
    1141 ENDIF
    1142       CALL histwrite_phy(o_mcd, zx_tmp_fi3d)
    1143 IF(vars_defined) THEN
     1134          ENDIF
     1135          CALL histwrite_phy(o_mcd, zx_tmp_fi3d)
     1136          IF(vars_defined) THEN
    11441137             zx_tmp_fi3d(1:klon,1:klev)=upwd(1:klon,1:klev) + &
    11451138                  dnwd(1:klon,1:klev)+ dnwd0(1:klon,1:klev)
    1146 ENDIF
    1147       CALL histwrite_phy(o_dmc, zx_tmp_fi3d)
     1139          ENDIF
     1140          CALL histwrite_phy(o_dmc, zx_tmp_fi3d)
    11481141       else if (iflag_con == 2) then
    1149       CALL histwrite_phy(o_mcd,  pmfd)
    1150       CALL histwrite_phy(o_dmc,  pmfu + pmfd)
     1142          CALL histwrite_phy(o_mcd,  pmfd)
     1143          CALL histwrite_phy(o_dmc,  pmfu + pmfd)
    11511144       end if
    1152       CALL histwrite_phy(o_ref_liq, ref_liq)
    1153       CALL histwrite_phy(o_ref_ice, ref_ice)
    1154       if (RCO2_per.NE.RCO2_act.OR.RCH4_per.NE.RCH4_act.OR. &
    1155        RN2O_per.NE.RN2O_act.OR.RCFC11_per.NE.RCFC11_act.OR. &
    1156        RCFC12_per.NE.RCFC12_act) THEN
    1157 IF(vars_defined) zx_tmp_fi2d(1 : klon) = swupp ( 1 : klon, klevp1 )
    1158       CALL histwrite_phy(o_rsut4co2, zx_tmp_fi2d)
    1159 IF(vars_defined) zx_tmp_fi2d(1 : klon) = lwupp ( 1 : klon, klevp1 )
    1160       CALL histwrite_phy(o_rlut4co2, zx_tmp_fi2d)
    1161 IF(vars_defined) zx_tmp_fi2d(1 : klon) = swup0p ( 1 : klon, klevp1 )
    1162       CALL histwrite_phy(o_rsutcs4co2, zx_tmp_fi2d)
    1163 IF(vars_defined) zx_tmp_fi2d(1 : klon) = lwup0p ( 1 : klon, klevp1 )
    1164       CALL histwrite_phy(o_rlutcs4co2, zx_tmp_fi2d)
    1165       CALL histwrite_phy(o_rsu4co2, swupp)
    1166       CALL histwrite_phy(o_rlu4co2, lwupp)
    1167       CALL histwrite_phy(o_rsucs4co2, swup0p)
    1168       CALL histwrite_phy(o_rlucs4co2, lwup0p)
    1169       CALL histwrite_phy(o_rsd4co2, swdnp)
    1170       CALL histwrite_phy(o_rld4co2, lwdnp)
    1171       CALL histwrite_phy(o_rsdcs4co2, swdn0p)
    1172       CALL histwrite_phy(o_rldcs4co2, lwdn0p)
    1173       ENDIF
     1145       CALL histwrite_phy(o_ref_liq, ref_liq)
     1146       CALL histwrite_phy(o_ref_ice, ref_ice)
     1147       if (RCO2_per.NE.RCO2_act.OR.RCH4_per.NE.RCH4_act.OR. &
     1148            RN2O_per.NE.RN2O_act.OR.RCFC11_per.NE.RCFC11_act.OR. &
     1149            RCFC12_per.NE.RCFC12_act) THEN
     1150          IF(vars_defined) zx_tmp_fi2d(1 : klon) = swupp ( 1 : klon, klevp1 )
     1151          CALL histwrite_phy(o_rsut4co2, zx_tmp_fi2d)
     1152          IF(vars_defined) zx_tmp_fi2d(1 : klon) = lwupp ( 1 : klon, klevp1 )
     1153          CALL histwrite_phy(o_rlut4co2, zx_tmp_fi2d)
     1154          IF(vars_defined) zx_tmp_fi2d(1 : klon) = swup0p ( 1 : klon, klevp1 )
     1155          CALL histwrite_phy(o_rsutcs4co2, zx_tmp_fi2d)
     1156          IF(vars_defined) zx_tmp_fi2d(1 : klon) = lwup0p ( 1 : klon, klevp1 )
     1157          CALL histwrite_phy(o_rlutcs4co2, zx_tmp_fi2d)
     1158          CALL histwrite_phy(o_rsu4co2, swupp)
     1159          CALL histwrite_phy(o_rlu4co2, lwupp)
     1160          CALL histwrite_phy(o_rsucs4co2, swup0p)
     1161          CALL histwrite_phy(o_rlucs4co2, lwup0p)
     1162          CALL histwrite_phy(o_rsd4co2, swdnp)
     1163          CALL histwrite_phy(o_rld4co2, lwdnp)
     1164          CALL histwrite_phy(o_rsdcs4co2, swdn0p)
     1165          CALL histwrite_phy(o_rldcs4co2, lwdn0p)
     1166       ENDIF
    11741167!!!!!!!!!!!! Sorties niveaux de pression NMC !!!!!!!!!!!!!!!!!!!!
    1175 DO iff=7, nfiles
    1176 
    1177       CALL histwrite_phy(o_tnondef,tnondef(:,:,iff-6),iff)
    1178       CALL histwrite_phy(o_ta,twriteSTD(:,:,iff-6),iff)
    1179       CALL histwrite_phy(o_zg,phiwriteSTD(:,:,iff-6),iff)
    1180       CALL histwrite_phy(o_hus,qwriteSTD(:,:,iff-6),iff)
    1181       CALL histwrite_phy(o_hur,rhwriteSTD(:,:,iff-6),iff)
    1182       CALL histwrite_phy(o_ua,uwriteSTD(:,:,iff-6),iff)
    1183       CALL histwrite_phy(o_va,vwriteSTD(:,:,iff-6),iff)
    1184       CALL histwrite_phy(o_wap,wwriteSTD(:,:,iff-6),iff)
    1185 IF(vars_defined) THEN
    1186        DO k=1, nlevSTD
    1187         DO i=1, klon
    1188          IF(tnondef(i,k,iff-6).NE.missing_val) THEN
    1189           zx_tmp_fi3d(i,k) = (100.*tnondef(i,k,iff-6))/freq_moyNMC(iff-6)
    1190          ELSE
    1191           zx_tmp_fi3d(i,k) = missing_val
    1192          ENDIF
    1193         ENDDO
    1194       ENDDO
    1195 ENDIF
    1196       CALL histwrite_phy(o_psbg,zx_tmp_fi3d,iff)
    1197 IF(vars_defined) THEN
    1198        DO k=1, nlevSTD
    1199         DO i=1, klon
    1200          IF(O3sumSTD(i,k,iff-6).NE.missing_val) THEN
    1201           zx_tmp_fi3d(i,k) = O3sumSTD(i,k,iff-6) * 1.e+9
    1202          ELSE
    1203           zx_tmp_fi3d(i,k) = missing_val
    1204          ENDIF
    1205         ENDDO
    1206        ENDDO !k=1, nlevSTD
    1207 ENDIF
    1208       CALL histwrite_phy(o_tro3,zx_tmp_fi3d,iff)
    1209        if (read_climoz == 2) THEN
    1210 IF(vars_defined) THEN
    1211        DO k=1, nlevSTD
    1212         DO i=1, klon
    1213          IF(O3daysumSTD(i,k,iff-6).NE.missing_val) THEN
    1214           zx_tmp_fi3d(i,k) = O3daysumSTD(i,k,iff-6) * 1.e+9
    1215          ELSE
    1216           zx_tmp_fi3d(i,k) = missing_val
    1217          ENDIF
    1218         ENDDO
    1219        ENDDO !k=1, nlevSTD
    1220 ENDIF
    1221       CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d,iff)
    1222       endif
    1223       CALL histwrite_phy(o_uxv,uvsumSTD(:,:,iff-6),iff)
    1224       CALL histwrite_phy(o_vxq,vqsumSTD(:,:,iff-6),iff)
    1225       CALL histwrite_phy(o_vxT,vTsumSTD(:,:,iff-6),iff)
    1226       CALL histwrite_phy(o_wxq,wqsumSTD(:,:,iff-6),iff)
    1227       CALL histwrite_phy(o_vxphi,vphisumSTD(:,:,iff-6),iff)
    1228       CALL histwrite_phy(o_wxT,wTsumSTD(:,:,iff-6),iff)
    1229       CALL histwrite_phy(o_uxu,u2sumSTD(:,:,iff-6),iff)
    1230       CALL histwrite_phy(o_vxv,v2sumSTD(:,:,iff-6),iff)
    1231       CALL histwrite_phy(o_TxT,T2sumSTD(:,:,iff-6),iff)
    1232 ENDDO !nfiles
     1168       DO iff=7, nfiles
     1169
     1170          CALL histwrite_phy(o_tnondef,tnondef(:,:,iff-6),iff)
     1171          CALL histwrite_phy(o_ta,twriteSTD(:,:,iff-6),iff)
     1172          CALL histwrite_phy(o_zg,phiwriteSTD(:,:,iff-6),iff)
     1173          CALL histwrite_phy(o_hus,qwriteSTD(:,:,iff-6),iff)
     1174          CALL histwrite_phy(o_hur,rhwriteSTD(:,:,iff-6),iff)
     1175          CALL histwrite_phy(o_ua,uwriteSTD(:,:,iff-6),iff)
     1176          CALL histwrite_phy(o_va,vwriteSTD(:,:,iff-6),iff)
     1177          CALL histwrite_phy(o_wap,wwriteSTD(:,:,iff-6),iff)
     1178          IF(vars_defined) THEN
     1179             DO k=1, nlevSTD
     1180                DO i=1, klon
     1181                   IF(tnondef(i,k,iff-6).NE.missing_val) THEN
     1182                      zx_tmp_fi3d(i,k) = (100.*tnondef(i,k,iff-6))/freq_moyNMC(iff-6)
     1183                   ELSE
     1184                      zx_tmp_fi3d(i,k) = missing_val
     1185                   ENDIF
     1186                ENDDO
     1187             ENDDO
     1188          ENDIF
     1189          CALL histwrite_phy(o_psbg,zx_tmp_fi3d,iff)
     1190          IF(vars_defined) THEN
     1191             DO k=1, nlevSTD
     1192                DO i=1, klon
     1193                   IF(O3sumSTD(i,k,iff-6).NE.missing_val) THEN
     1194                      zx_tmp_fi3d(i,k) = O3sumSTD(i,k,iff-6) * 1.e+9
     1195                   ELSE
     1196                      zx_tmp_fi3d(i,k) = missing_val
     1197                   ENDIF
     1198                ENDDO
     1199             ENDDO !k=1, nlevSTD
     1200          ENDIF
     1201          CALL histwrite_phy(o_tro3,zx_tmp_fi3d,iff)
     1202          if (read_climoz == 2) THEN
     1203             IF(vars_defined) THEN
     1204                DO k=1, nlevSTD
     1205                   DO i=1, klon
     1206                      IF(O3daysumSTD(i,k,iff-6).NE.missing_val) THEN
     1207                         zx_tmp_fi3d(i,k) = O3daysumSTD(i,k,iff-6) * 1.e+9
     1208                      ELSE
     1209                         zx_tmp_fi3d(i,k) = missing_val
     1210                      ENDIF
     1211                   ENDDO
     1212                ENDDO !k=1, nlevSTD
     1213             ENDIF
     1214             CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d,iff)
     1215          endif
     1216          CALL histwrite_phy(o_uxv,uvsumSTD(:,:,iff-6),iff)
     1217          CALL histwrite_phy(o_vxq,vqsumSTD(:,:,iff-6),iff)
     1218          CALL histwrite_phy(o_vxT,vTsumSTD(:,:,iff-6),iff)
     1219          CALL histwrite_phy(o_wxq,wqsumSTD(:,:,iff-6),iff)
     1220          CALL histwrite_phy(o_vxphi,vphisumSTD(:,:,iff-6),iff)
     1221          CALL histwrite_phy(o_wxT,wTsumSTD(:,:,iff-6),iff)
     1222          CALL histwrite_phy(o_uxu,u2sumSTD(:,:,iff-6),iff)
     1223          CALL histwrite_phy(o_vxv,v2sumSTD(:,:,iff-6),iff)
     1224          CALL histwrite_phy(o_TxT,T2sumSTD(:,:,iff-6),iff)
     1225       ENDDO !nfiles
    12331226!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    1234         IF (nqtot.GE.3) THEN
    1235          DO iq=3,nqtot
     1227       IF (nqtot.GE.3) THEN
     1228          DO iq=3,nqtot
    12361229             CALL histwrite_phy(o_trac(iq-2), qx(:,:,iq))
    12371230             CALL histwrite_phy(o_dtr_vdf(iq-2),d_tr_cl(:,:,iq-2))
     
    12481241             CALL histwrite_phy(o_dtr_sat(iq-2),d_tr_sat(:,:,iq-2))
    12491242             CALL histwrite_phy(o_dtr_uscav(iq-2),d_tr_uscav(:,:,iq-2))
    1250          zx_tmp_fi2d=0.
    1251 IF(vars_defined) THEN
    1252          DO k=1,klev
    1253             zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*qx(:,k,iq)
    1254          ENDDO
    1255 ENDIF
    1256             CALL histwrite_phy(o_trac_cum(iq-2), zx_tmp_fi2d)
    1257          ENDDO
    1258         ENDIF
    1259 
    1260 
    1261         IF(.NOT.vars_defined) THEN
    1262 !$OMP MASTER
     1243             zx_tmp_fi2d=0.
     1244             IF(vars_defined) THEN
     1245                DO k=1,klev
     1246                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*qx(:,k,iq)
     1247                ENDDO
     1248             ENDIF
     1249             CALL histwrite_phy(o_trac_cum(iq-2), zx_tmp_fi2d)
     1250          ENDDO
     1251       ENDIF
     1252
     1253       IF(.NOT.vars_defined) THEN
     1254          !$OMP MASTER
    12631255#ifndef CPP_NO_IOIPSL
    1264             DO iff=1,nfiles
    1265                 IF (clef_files(iff)) THEN
    1266                   CALL histend(nid_files(iff))
    1267                   ndex2d = 0
    1268                   ndex3d = 0
    1269 
    1270                 ENDIF ! clef_files
    1271             ENDDO !  iff
     1256          DO iff=1,nfiles
     1257             IF (clef_files(iff)) THEN
     1258                CALL histend(nid_files(iff))
     1259                ndex2d = 0
     1260                ndex3d = 0
     1261
     1262             ENDIF ! clef_files
     1263          ENDDO !  iff
    12721264#endif
    12731265#ifdef CPP_XIOS
    1274             !On finalise l'initialisation:
    1275             CALL wxios_closedef()
     1266          !On finalise l'initialisation:
     1267          CALL wxios_closedef()
    12761268#endif
    12771269
    1278 !$OMP END MASTER
    1279 !$OMP BARRIER
    1280             vars_defined = .TRUE.
    1281 
    1282 
    1283         END IF
     1270          !$OMP END MASTER
     1271          !$OMP BARRIER
     1272          vars_defined = .TRUE.
     1273
     1274       END IF
    12841275
    12851276    END DO
    12861277
    12871278    IF(vars_defined) THEN
    1288 ! On synchronise les fichiers pour IOIPSL
     1279       ! On synchronise les fichiers pour IOIPSL
    12891280#ifndef CPP_NO_IOIPSL
    1290 !$OMP MASTER
    1291       DO iff=1,nfiles
     1281       !$OMP MASTER
     1282       DO iff=1,nfiles
    12921283          IF (ok_sync .AND. clef_files(iff)) THEN
    1293               CALL histsync(nid_files(iff))
    1294           ENDIF
    1295       END DO
    1296 !$OMP END MASTER
     1284             CALL histsync(nid_files(iff))
     1285          ENDIF
     1286       END DO
     1287       !$OMP END MASTER
    12971288#endif
    12981289    ENDIF
    12991290
    1300      
    1301 
    1302 
    1303     END SUBROUTINE phys_output_write
    1304 
    1305 
    1306 
    1307   END MODULE phys_output_write_mod
    1308 
     1291  END SUBROUTINE phys_output_write
     1292
     1293END MODULE phys_output_write_mod
Note: See TracChangeset for help on using the changeset viewer.