Ignore:
Timestamp:
Jun 3, 2011, 7:28:17 PM (13 years ago)
Author:
musat
Message:

Ajouts CFMIP2/CMIP5

  • 6eme fichier de sortie "stations" histstn.nc qui necessite 2 fichiers: PARAM/npCFMIP_param.data contenant le nombre de points (120 pour simulations AMIP, 73 pour aqua) PARAM/pointlocations.txt contenat le numero, les coordonnees (lon,lat) et le nom de chaque station
  • flag LOGICAL dans tous les appels histwrite_phy pour pouvoir sortir le fichier histstn.nc

NB: 1) les flags de type phys_ que l'on met dans le physiq.def_L* pour ajouter plus de sorties

necessitent dorenavant 6 valeurs, la 6eme correspondant au fichier histstn.nc

2) par defaut le fichier histstn.nc ne sort pas; pour le sortir ajouter les lignes suivantes

dans physiq.def_L*

### Type de fichier : global (n) ou stations (y)
phys_out_filestations = n n n n n y

  • introduction de 2 jeux de flags pour les taux des GES; taux actuels avec suffixes _act, taux futurs avec "_per" avec 2 appels au rayonnement si taux "_per" different des taux "_act" (utiles pour diags. CFMIP 4CO2)
  • flags "betaCRF" pour calculs CRF pour experiences sensibilite proprietes optiques eau liquide nuageuse avec initialisations par defaut; sinon besoin de fichier beta_crf.data

IM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4_AR5/libf/phylmd/phys_output_mod.F90

    r1419 r1534  
    1717
    1818
    19    integer, parameter                           :: nfiles = 5
     19   integer, parameter                           :: nfiles = 6
    2020   logical, dimension(nfiles), save             :: clef_files
     21   logical, dimension(nfiles), save             :: clef_stations
    2122   integer, dimension(nfiles), save             :: lev_files
    2223   integer, dimension(nfiles), save             :: nid_files
    23 !!$OMP THREADPRIVATE(clef_files, lev_files,nid_files)
     24   integer, dimension(nfiles), save  :: nnid_files
     25!!$OMP THREADPRIVATE(clef_files, clef_stations, lev_files,nid_files,nnid_files)
     26   integer, dimension(nfiles), private, save :: nnhorim
    2427 
    2528   integer, dimension(nfiles), private, save :: nhorim, nvertm
     
    4245
    4346  TYPE ctrl_out
    44    integer,dimension(5) :: flag
     47   integer,dimension(6) :: flag
    4548   character(len=20)     :: name
    4649  END TYPE ctrl_out
     
    4851!!! Comosentes de la coordonnee sigma-hybride
    4952!!! Ap et Bp
    50   type(ctrl_out),save :: o_Ahyb         = ctrl_out((/ 1, 1, 1, 1, 1 /), 'Ap')
    51   type(ctrl_out),save :: o_Bhyb         = ctrl_out((/ 1, 1, 1, 1, 1 /), 'Bp')
    52   type(ctrl_out),save :: o_Alt          = ctrl_out((/ 1, 1, 1, 1, 1 /), 'Alt')
     53  type(ctrl_out),save :: o_Ahyb         = ctrl_out((/ 1, 1, 1, 1, 1, 1 /), 'Ap')
     54  type(ctrl_out),save :: o_Bhyb         = ctrl_out((/ 1, 1, 1, 1, 1, 1 /), 'Bp')
     55  type(ctrl_out),save :: o_Alt          = ctrl_out((/ 1, 1, 1, 1, 1, 1 /), 'Alt')
    5356
    5457!!! 1D
    55   type(ctrl_out),save :: o_phis         = ctrl_out((/ 1, 1, 10, 5, 1 /), 'phis')
    56   type(ctrl_out),save :: o_aire         = ctrl_out((/ 1, 1, 10,  10, 1 /),'aire')
    57   type(ctrl_out),save :: o_contfracATM  = ctrl_out((/ 10, 1,  1, 10, 10 /),'contfracATM')
    58   type(ctrl_out),save :: o_contfracOR   = ctrl_out((/ 10, 1,  1, 10, 10 /),'contfracOR')
    59   type(ctrl_out),save :: o_aireTER      = ctrl_out((/ 10, 10, 1, 10, 10 /),'aireTER')
     58  type(ctrl_out),save :: o_phis         = ctrl_out((/ 1, 1, 10, 5, 1, 1 /), 'phis')
     59  type(ctrl_out),save :: o_aire         = ctrl_out((/ 1, 1, 10,  10, 1, 1 /),'aire')
     60  type(ctrl_out),save :: o_contfracATM  = ctrl_out((/ 10, 1,  1, 10, 10, 10 /),'contfracATM')
     61  type(ctrl_out),save :: o_contfracOR   = ctrl_out((/ 10, 1,  1, 10, 10, 10 /),'contfracOR')
     62  type(ctrl_out),save :: o_aireTER      = ctrl_out((/ 10, 10, 1, 10, 10, 10 /),'aireTER')
    6063 
    6164!!! 2D
    62   type(ctrl_out),save :: o_flat         = ctrl_out((/ 5, 1, 10, 10, 5 /),'flat')
    63   type(ctrl_out),save :: o_slp          = ctrl_out((/ 1, 1, 1, 10, 10 /),'slp')
    64   type(ctrl_out),save :: o_tsol         = ctrl_out((/ 1, 1, 1, 5, 10 /),'tsol')
    65   type(ctrl_out),save :: o_t2m          = ctrl_out((/ 1, 1, 1, 5, 10 /),'t2m')
    66   type(ctrl_out),save :: o_t2m_min      = ctrl_out((/ 1, 1, 10, 10, 10 /),'t2m_min')
    67   type(ctrl_out),save :: o_t2m_max      = ctrl_out((/ 1, 1, 10, 10, 10 /),'t2m_max')
    68   type(ctrl_out),save,dimension(4) :: o_t2m_srf      = (/ ctrl_out((/ 10, 6, 10, 10, 10 /),'t2m_ter'), &
    69                                                  ctrl_out((/ 10, 6, 10, 10, 10 /),'t2m_lic'), &
    70                                                  ctrl_out((/ 10, 6, 10, 10, 10 /),'t2m_oce'), &
    71                                                  ctrl_out((/ 10, 6, 10, 10, 10 /),'t2m_sic') /)
    72 
    73   type(ctrl_out),save :: o_wind10m      = ctrl_out((/ 1, 1, 1, 10, 10 /),'wind10m')
    74   type(ctrl_out),save :: o_wind10max    = ctrl_out((/ 10, 1, 10, 10, 10 /),'wind10max')
    75   type(ctrl_out),save :: o_sicf         = ctrl_out((/ 1, 1, 10, 10, 10 /),'sicf')
    76   type(ctrl_out),save :: o_q2m          = ctrl_out((/ 1, 1, 1, 5, 10 /),'q2m')
    77   type(ctrl_out),save :: o_u10m         = ctrl_out((/ 1, 1, 1, 5, 10 /),'u10m')
    78   type(ctrl_out),save :: o_v10m         = ctrl_out((/ 1, 1, 1, 5, 10 /),'v10m')
    79   type(ctrl_out),save :: o_psol         = ctrl_out((/ 1, 1, 1, 5, 10 /),'psol')
    80   type(ctrl_out),save :: o_qsurf        = ctrl_out((/ 1, 10, 10, 10, 10 /),'qsurf')
    81 
    82   type(ctrl_out),save,dimension(4) :: o_u10m_srf     = (/ ctrl_out((/ 10, 6, 10, 10, 10 /),'u10m_ter'), &
    83                                               ctrl_out((/ 10, 6, 10, 10, 10 /),'u10m_lic'), &
    84                                               ctrl_out((/ 10, 6, 10, 10, 10 /),'u10m_oce'), &
    85                                               ctrl_out((/ 10, 6, 10, 10, 10 /),'u10m_sic') /)
    86 
    87   type(ctrl_out),save,dimension(4) :: o_v10m_srf     = (/ ctrl_out((/ 10, 6, 10, 10, 10 /),'v10m_ter'), &
    88                                               ctrl_out((/ 10, 6, 10, 10, 10 /),'v10m_lic'), &
    89                                               ctrl_out((/ 10, 6, 10, 10, 10 /),'v10m_oce'), &
    90                                               ctrl_out((/ 10, 6, 10, 10, 10 /),'v10m_sic') /)
    91 
    92   type(ctrl_out),save :: o_qsol         = ctrl_out((/ 1, 10, 10, 10, 10 /),'qsol')
    93 
    94   type(ctrl_out),save :: o_ndayrain     = ctrl_out((/ 1, 10, 10, 10, 10 /),'ndayrain')
    95   type(ctrl_out),save :: o_precip       = ctrl_out((/ 1, 1, 1, 10, 5 /),'precip')
    96   type(ctrl_out),save :: o_plul         = ctrl_out((/ 1, 1, 1, 10, 10 /),'plul')
    97 
    98   type(ctrl_out),save :: o_pluc         = ctrl_out((/ 1, 1, 1, 10, 5 /),'pluc')
    99   type(ctrl_out),save :: o_snow         = ctrl_out((/ 1, 1, 10, 10, 5 /),'snow')
    100   type(ctrl_out),save :: o_evap         = ctrl_out((/ 1, 1, 10, 10, 10 /),'evap')
    101   type(ctrl_out),save,dimension(4) :: o_evap_srf     = (/ ctrl_out((/ 1, 6, 10, 10, 10 /),'evap_ter'), &
    102                                            ctrl_out((/ 1, 6, 10, 10, 10 /),'evap_lic'), &
    103                                            ctrl_out((/ 1, 6, 10, 10, 10 /),'evap_oce'), &
    104                                            ctrl_out((/ 1, 6, 10, 10, 10 /),'evap_sic') /)
    105   type(ctrl_out),save :: o_msnow       = ctrl_out((/ 1, 10, 10, 10, 10 /),'msnow')
    106   type(ctrl_out),save :: o_fsnow       = ctrl_out((/ 1, 10, 10, 10, 10 /),'fsnow')
    107 
    108   type(ctrl_out),save :: o_tops         = ctrl_out((/ 1, 1, 10, 10, 10 /),'tops')
    109   type(ctrl_out),save :: o_tops0        = ctrl_out((/ 1, 5, 10, 10, 10 /),'tops0')
    110   type(ctrl_out),save :: o_topl         = ctrl_out((/ 1, 1, 10, 5, 10 /),'topl')
    111   type(ctrl_out),save :: o_topl0        = ctrl_out((/ 1, 5, 10, 10, 10 /),'topl0')
    112   type(ctrl_out),save :: o_SWupTOA      = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWupTOA')
    113   type(ctrl_out),save :: o_SWupTOAclr   = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWupTOAclr')
    114   type(ctrl_out),save :: o_SWdnTOA      = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWdnTOA')
    115   type(ctrl_out),save :: o_SWdnTOAclr   = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWdnTOAclr')
    116   type(ctrl_out),save :: o_nettop       = ctrl_out((/ 1, 4, 10, 10, 10 /),'nettop')
    117 
    118   type(ctrl_out),save :: o_SWup200      = ctrl_out((/ 1, 10, 10, 10, 10 /),'SWup200')
    119   type(ctrl_out),save :: o_SWup200clr   = ctrl_out((/ 10, 1, 10, 10, 10 /),'SWup200clr')
    120   type(ctrl_out),save :: o_SWdn200      = ctrl_out((/ 1, 10, 10, 10, 10 /),'SWdn200')
    121   type(ctrl_out),save :: o_SWdn200clr   = ctrl_out((/ 10, 1, 10, 10, 10 /),'SWdn200clr')
     65  type(ctrl_out),save :: o_flat         = ctrl_out((/ 5, 1, 10, 10, 5, 10 /),'flat')
     66  type(ctrl_out),save :: o_slp          = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'slp')
     67  type(ctrl_out),save :: o_tsol         = ctrl_out((/ 1, 1, 1, 5, 10, 10 /),'tsol')
     68  type(ctrl_out),save :: o_t2m          = ctrl_out((/ 1, 1, 1, 5, 10, 10 /),'t2m')
     69  type(ctrl_out),save :: o_t2m_min      = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'t2m_min')
     70  type(ctrl_out),save :: o_t2m_max      = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'t2m_max')
     71  type(ctrl_out),save,dimension(4) :: o_t2m_srf      = (/ ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'t2m_ter'), &
     72                                                 ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'t2m_lic'), &
     73                                                 ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'t2m_oce'), &
     74                                                 ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'t2m_sic') /)
     75
     76  type(ctrl_out),save :: o_wind10m      = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'wind10m')
     77  type(ctrl_out),save :: o_wind10max    = ctrl_out((/ 10, 1, 10, 10, 10, 10 /),'wind10max')
     78  type(ctrl_out),save :: o_sicf         = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'sicf')
     79  type(ctrl_out),save :: o_q2m          = ctrl_out((/ 1, 1, 1, 5, 10, 10 /),'q2m')
     80  type(ctrl_out),save :: o_u10m         = ctrl_out((/ 1, 1, 1, 5, 10, 10 /),'u10m')
     81  type(ctrl_out),save :: o_v10m         = ctrl_out((/ 1, 1, 1, 5, 10, 10 /),'v10m')
     82  type(ctrl_out),save :: o_psol         = ctrl_out((/ 1, 1, 1, 5, 10, 10 /),'psol')
     83  type(ctrl_out),save :: o_qsurf        = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'qsurf')
     84
     85  type(ctrl_out),save,dimension(4) :: o_u10m_srf     = (/ ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'u10m_ter'), &
     86                                              ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'u10m_lic'), &
     87                                              ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'u10m_oce'), &
     88                                              ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'u10m_sic') /)
     89
     90  type(ctrl_out),save,dimension(4) :: o_v10m_srf     = (/ ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'v10m_ter'), &
     91                                              ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'v10m_lic'), &
     92                                              ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'v10m_oce'), &
     93                                              ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'v10m_sic') /)
     94
     95  type(ctrl_out),save :: o_qsol         = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'qsol')
     96
     97  type(ctrl_out),save :: o_ndayrain     = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'ndayrain')
     98  type(ctrl_out),save :: o_precip       = ctrl_out((/ 1, 1, 1, 10, 5, 10 /),'precip')
     99  type(ctrl_out),save :: o_plul         = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'plul')
     100
     101  type(ctrl_out),save :: o_pluc         = ctrl_out((/ 1, 1, 1, 10, 5, 10 /),'pluc')
     102  type(ctrl_out),save :: o_snow         = ctrl_out((/ 1, 1, 10, 10, 5, 10 /),'snow')
     103  type(ctrl_out),save :: o_evap         = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'evap')
     104  type(ctrl_out),save,dimension(4) :: o_evap_srf     = (/ ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'evap_ter'), &
     105                                           ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'evap_lic'), &
     106                                           ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'evap_oce'), &
     107                                           ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'evap_sic') /)
     108  type(ctrl_out),save :: o_msnow       = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'msnow')
     109  type(ctrl_out),save :: o_fsnow       = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'fsnow')
     110
     111  type(ctrl_out),save :: o_tops         = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'tops')
     112  type(ctrl_out),save :: o_tops0        = ctrl_out((/ 1, 5, 10, 10, 10, 10 /),'tops0')
     113  type(ctrl_out),save :: o_topl         = ctrl_out((/ 1, 1, 10, 5, 10, 10 /),'topl')
     114  type(ctrl_out),save :: o_topl0        = ctrl_out((/ 1, 5, 10, 10, 10, 10 /),'topl0')
     115  type(ctrl_out),save :: o_SWupTOA      = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'SWupTOA')
     116  type(ctrl_out),save :: o_SWupTOAclr   = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'SWupTOAclr')
     117  type(ctrl_out),save :: o_SWdnTOA      = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'SWdnTOA')
     118  type(ctrl_out),save :: o_SWdnTOAclr   = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'SWdnTOAclr')
     119  type(ctrl_out),save :: o_nettop       = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'nettop')
     120
     121  type(ctrl_out),save :: o_SWup200      = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'SWup200')
     122  type(ctrl_out),save :: o_SWup200clr   = ctrl_out((/ 10, 1, 10, 10, 10, 10 /),'SWup200clr')
     123  type(ctrl_out),save :: o_SWdn200      = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'SWdn200')
     124  type(ctrl_out),save :: o_SWdn200clr   = ctrl_out((/ 10, 1, 10, 10, 10, 10 /),'SWdn200clr')
    122125
    123126! arajouter
    124 !  type(ctrl_out),save :: o_LWupTOA     = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWupTOA')
    125 !  type(ctrl_out),save :: o_LWupTOAclr  = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWupTOAclr')
    126 !  type(ctrl_out),save :: o_LWdnTOA     = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWdnTOA')
    127 !  type(ctrl_out),save :: o_LWdnTOAclr  = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWdnTOAclr')
    128 
    129   type(ctrl_out),save :: o_LWup200      = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWup200')
    130   type(ctrl_out),save :: o_LWup200clr   = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWup200clr')
    131   type(ctrl_out),save :: o_LWdn200      = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWdn200')
    132   type(ctrl_out),save :: o_LWdn200clr   = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWdn200clr')
    133   type(ctrl_out),save :: o_sols         = ctrl_out((/ 1, 1, 10, 10, 10 /),'sols')
    134   type(ctrl_out),save :: o_sols0        = ctrl_out((/ 1, 5, 10, 10, 10 /),'sols0')
    135   type(ctrl_out),save :: o_soll         = ctrl_out((/ 1, 1, 10, 10, 10 /),'soll')
    136   type(ctrl_out),save :: o_soll0        = ctrl_out((/ 1, 5, 10, 10, 10 /),'soll0')
    137   type(ctrl_out),save :: o_radsol       = ctrl_out((/ 1, 7, 10, 10, 10 /),'radsol')
    138   type(ctrl_out),save :: o_SWupSFC      = ctrl_out((/ 1, 4, 10, 10, 5 /),'SWupSFC')
    139   type(ctrl_out),save :: o_SWupSFCclr   = ctrl_out((/ 1, 4, 10, 10, 5 /),'SWupSFCclr')
    140   type(ctrl_out),save :: o_SWdnSFC      = ctrl_out((/ 1, 1, 10, 10, 5 /),'SWdnSFC')
    141   type(ctrl_out),save :: o_SWdnSFCclr   = ctrl_out((/ 1, 4, 10, 10, 5 /),'SWdnSFCclr')
    142   type(ctrl_out),save :: o_LWupSFC      = ctrl_out((/ 1, 4, 10, 10, 5 /),'LWupSFC')
    143   type(ctrl_out),save :: o_LWupSFCclr   = ctrl_out((/ 1, 4, 10, 10, 5 /),'LWupSFCclr')
    144   type(ctrl_out),save :: o_LWdnSFC      = ctrl_out((/ 1, 4, 10, 10, 5 /),'LWdnSFC')
    145   type(ctrl_out),save :: o_LWdnSFCclr   = ctrl_out((/ 1, 4, 10, 10, 5 /),'LWdnSFCclr')
    146   type(ctrl_out),save :: o_bils         = ctrl_out((/ 1, 2, 10, 5, 10 /),'bils')
    147   type(ctrl_out),save :: o_sens         = ctrl_out((/ 1, 1, 10, 10, 5 /),'sens')
    148   type(ctrl_out),save :: o_fder         = ctrl_out((/ 1, 2, 10, 10, 10 /),'fder')
    149   type(ctrl_out),save :: o_ffonte       = ctrl_out((/ 1, 10, 10, 10, 10 /),'ffonte')
    150   type(ctrl_out),save :: o_fqcalving    = ctrl_out((/ 1, 10, 10, 10, 10 /),'fqcalving')
    151   type(ctrl_out),save :: o_fqfonte      = ctrl_out((/ 1, 10, 10, 10, 10 /),'fqfonte')
    152 
    153   type(ctrl_out),save :: o_taux         = ctrl_out((/ 1, 10, 10, 10, 10 /),'taux')
    154   type(ctrl_out),save :: o_tauy         = ctrl_out((/ 1, 10, 10, 10, 10 /),'tauy')
    155   type(ctrl_out),save,dimension(4) :: o_taux_srf     = (/ ctrl_out((/ 1, 6, 10, 10, 10 /),'taux_ter'), &
    156                                                  ctrl_out((/ 1, 6, 10, 10, 10 /),'taux_lic'), &
    157                                                  ctrl_out((/ 1, 6, 10, 10, 10 /),'taux_oce'), &
    158                                                  ctrl_out((/ 1, 6, 10, 10, 10 /),'taux_sic') /)
    159 
    160   type(ctrl_out),save,dimension(4) :: o_tauy_srf     = (/ ctrl_out((/ 1, 6, 10, 10, 10 /),'tauy_ter'), &
    161                                                  ctrl_out((/ 1, 6, 10, 10, 10 /),'tauy_lic'), &
    162                                                  ctrl_out((/ 1, 6, 10, 10, 10 /),'tauy_oce'), &
    163                                                  ctrl_out((/ 1, 6, 10, 10, 10 /),'tauy_sic') /)
    164 
    165 
    166   type(ctrl_out),save,dimension(4) :: o_pourc_srf    = (/ ctrl_out((/ 1, 7, 10, 10, 10 /),'pourc_ter'), &
    167                                                  ctrl_out((/ 1, 7, 10, 10, 10 /),'pourc_lic'), &
    168                                                  ctrl_out((/ 1, 7, 10, 10, 10 /),'pourc_oce'), &
    169                                                  ctrl_out((/ 1, 7, 10, 10, 10 /),'pourc_sic') /)     
    170 
    171   type(ctrl_out),save,dimension(4) :: o_fract_srf    = (/ ctrl_out((/ 1, 6, 10, 10, 10 /),'fract_ter'), &
    172                                                  ctrl_out((/ 1, 6, 10, 10, 10 /),'fract_lic'), &
    173                                                  ctrl_out((/ 1, 6, 10, 10, 10 /),'fract_oce'), &
    174                                                  ctrl_out((/ 1, 6, 10, 10, 10 /),'fract_sic') /)
    175 
    176   type(ctrl_out),save,dimension(4) :: o_tsol_srf     = (/ ctrl_out((/ 1, 6, 10, 10, 10 /),'tsol_ter'), &
    177                                                  ctrl_out((/ 1, 6, 10, 10, 10 /),'tsol_lic'), &
    178                                                  ctrl_out((/ 1, 6, 10, 10, 10 /),'tsol_oce'), &
    179                                                  ctrl_out((/ 1, 6, 10, 10, 10 /),'tsol_sic') /)
    180 
    181   type(ctrl_out),save,dimension(4) :: o_sens_srf     = (/ ctrl_out((/ 1, 6, 10, 7, 10 /),'sens_ter'), &
    182                                                  ctrl_out((/ 1, 6, 10, 7, 10 /),'sens_lic'), &
    183                                                  ctrl_out((/ 1, 6, 10, 7, 10 /),'sens_oce'), &
    184                                                  ctrl_out((/ 1, 6, 10, 7, 10 /),'sens_sic') /)
    185 
    186   type(ctrl_out),save,dimension(4) :: o_lat_srf      = (/ ctrl_out((/ 1, 6, 10, 7, 10 /),'lat_ter'), &
    187                                                  ctrl_out((/ 1, 6, 10, 7, 10 /),'lat_lic'), &
    188                                                  ctrl_out((/ 1, 6, 10, 7, 10 /),'lat_oce'), &
    189                                                  ctrl_out((/ 1, 6, 10, 7, 10 /),'lat_sic') /)
    190 
    191   type(ctrl_out),save,dimension(4) :: o_flw_srf      = (/ ctrl_out((/ 1, 10, 10, 10, 10 /),'flw_ter'), &
    192                                                  ctrl_out((/ 1, 10, 10, 10, 10 /),'flw_lic'), &
    193                                                  ctrl_out((/ 1, 10, 10, 10, 10 /),'flw_oce'), &
    194                                                  ctrl_out((/ 1, 10, 10, 10, 10 /),'flw_sic') /)
     127!  type(ctrl_out),save :: o_LWupTOA     = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'LWupTOA')
     128!  type(ctrl_out),save :: o_LWupTOAclr  = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'LWupTOAclr')
     129!  type(ctrl_out),save :: o_LWdnTOA     = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'LWdnTOA')
     130!  type(ctrl_out),save :: o_LWdnTOAclr  = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'LWdnTOAclr')
     131
     132  type(ctrl_out),save :: o_LWup200      = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'LWup200')
     133  type(ctrl_out),save :: o_LWup200clr   = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'LWup200clr')
     134  type(ctrl_out),save :: o_LWdn200      = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'LWdn200')
     135  type(ctrl_out),save :: o_LWdn200clr   = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'LWdn200clr')
     136  type(ctrl_out),save :: o_sols         = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'sols')
     137  type(ctrl_out),save :: o_sols0        = ctrl_out((/ 1, 5, 10, 10, 10, 10 /),'sols0')
     138  type(ctrl_out),save :: o_soll         = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'soll')
     139  type(ctrl_out),save :: o_soll0        = ctrl_out((/ 1, 5, 10, 10, 10, 10 /),'soll0')
     140  type(ctrl_out),save :: o_radsol       = ctrl_out((/ 1, 7, 10, 10, 10, 10 /),'radsol')
     141  type(ctrl_out),save :: o_SWupSFC      = ctrl_out((/ 1, 4, 10, 10, 5, 10 /),'SWupSFC')
     142  type(ctrl_out),save :: o_SWupSFCclr   = ctrl_out((/ 1, 4, 10, 10, 5, 10 /),'SWupSFCclr')
     143  type(ctrl_out),save :: o_SWdnSFC      = ctrl_out((/ 1, 1, 10, 10, 5, 10 /),'SWdnSFC')
     144  type(ctrl_out),save :: o_SWdnSFCclr   = ctrl_out((/ 1, 4, 10, 10, 5, 10 /),'SWdnSFCclr')
     145  type(ctrl_out),save :: o_LWupSFC      = ctrl_out((/ 1, 4, 10, 10, 5, 10 /),'LWupSFC')
     146  type(ctrl_out),save :: o_LWupSFCclr   = ctrl_out((/ 1, 4, 10, 10, 5, 10 /),'LWupSFCclr')
     147  type(ctrl_out),save :: o_LWdnSFC      = ctrl_out((/ 1, 4, 10, 10, 5, 10 /),'LWdnSFC')
     148  type(ctrl_out),save :: o_LWdnSFCclr   = ctrl_out((/ 1, 4, 10, 10, 5, 10 /),'LWdnSFCclr')
     149  type(ctrl_out),save :: o_bils         = ctrl_out((/ 1, 2, 10, 5, 10, 10 /),'bils')
     150  type(ctrl_out),save :: o_sens         = ctrl_out((/ 1, 1, 10, 10, 5, 10 /),'sens')
     151  type(ctrl_out),save :: o_fder         = ctrl_out((/ 1, 2, 10, 10, 10, 10 /),'fder')
     152  type(ctrl_out),save :: o_ffonte       = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'ffonte')
     153  type(ctrl_out),save :: o_fqcalving    = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'fqcalving')
     154  type(ctrl_out),save :: o_fqfonte      = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'fqfonte')
     155
     156  type(ctrl_out),save :: o_taux         = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'taux')
     157  type(ctrl_out),save :: o_tauy         = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'tauy')
     158  type(ctrl_out),save,dimension(4) :: o_taux_srf     = (/ ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'taux_ter'), &
     159                                                 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'taux_lic'), &
     160                                                 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'taux_oce'), &
     161                                                 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'taux_sic') /)
     162
     163  type(ctrl_out),save,dimension(4) :: o_tauy_srf     = (/ ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'tauy_ter'), &
     164                                                 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'tauy_lic'), &
     165                                                 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'tauy_oce'), &
     166                                                 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'tauy_sic') /)
     167
     168
     169  type(ctrl_out),save,dimension(4) :: o_pourc_srf    = (/ ctrl_out((/ 1, 7, 10, 10, 10, 10 /),'pourc_ter'), &
     170                                                 ctrl_out((/ 1, 7, 10, 10, 10, 10 /),'pourc_lic'), &
     171                                                 ctrl_out((/ 1, 7, 10, 10, 10, 10 /),'pourc_oce'), &
     172                                                 ctrl_out((/ 1, 7, 10, 10, 10, 10 /),'pourc_sic') /)     
     173
     174  type(ctrl_out),save,dimension(4) :: o_fract_srf    = (/ ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'fract_ter'), &
     175                                                 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'fract_lic'), &
     176                                                 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'fract_oce'), &
     177                                                 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'fract_sic') /)
     178
     179  type(ctrl_out),save,dimension(4) :: o_tsol_srf     = (/ ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'tsol_ter'), &
     180                                                 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'tsol_lic'), &
     181                                                 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'tsol_oce'), &
     182                                                 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'tsol_sic') /)
     183
     184  type(ctrl_out),save,dimension(4) :: o_sens_srf     = (/ ctrl_out((/ 1, 6, 10, 7, 10, 10 /),'sens_ter'), &
     185                                                 ctrl_out((/ 1, 6, 10, 7, 10, 10 /),'sens_lic'), &
     186                                                 ctrl_out((/ 1, 6, 10, 7, 10, 10 /),'sens_oce'), &
     187                                                 ctrl_out((/ 1, 6, 10, 7, 10, 10 /),'sens_sic') /)
     188
     189  type(ctrl_out),save,dimension(4) :: o_lat_srf      = (/ ctrl_out((/ 1, 6, 10, 7, 10, 10 /),'lat_ter'), &
     190                                                 ctrl_out((/ 1, 6, 10, 7, 10, 10 /),'lat_lic'), &
     191                                                 ctrl_out((/ 1, 6, 10, 7, 10, 10 /),'lat_oce'), &
     192                                                 ctrl_out((/ 1, 6, 10, 7, 10, 10 /),'lat_sic') /)
     193
     194  type(ctrl_out),save,dimension(4) :: o_flw_srf      = (/ ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'flw_ter'), &
     195                                                 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'flw_lic'), &
     196                                                 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'flw_oce'), &
     197                                                 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'flw_sic') /)
    195198                                                 
    196   type(ctrl_out),save,dimension(4) :: o_fsw_srf      = (/ ctrl_out((/ 1, 10, 10, 10, 10 /),'fsw_ter'), &
    197                                                   ctrl_out((/ 1, 10, 10, 10, 10 /),'fsw_lic'), &
    198                                                   ctrl_out((/ 1, 10, 10, 10, 10 /),'fsw_oce'), &
    199                                                   ctrl_out((/ 1, 10, 10, 10, 10 /),'fsw_sic') /)
    200 
    201   type(ctrl_out),save,dimension(4) :: o_wbils_srf    = (/ ctrl_out((/ 1, 10, 10, 10, 10 /),'wbils_ter'), &
    202                                                  ctrl_out((/ 1, 10, 10, 10, 10 /),'wbils_lic'), &
    203                                                  ctrl_out((/ 1, 10, 10, 10, 10 /),'wbils_oce'), &
    204                                                  ctrl_out((/ 1, 10, 10, 10, 10 /),'wbils_sic') /)
    205 
    206   type(ctrl_out),save,dimension(4) :: o_wbilo_srf    = (/ ctrl_out((/ 1, 10, 10, 10, 10 /),'wbilo_ter'), &
    207                                                      ctrl_out((/ 1, 10, 10, 10, 10 /),'wbilo_lic'), &
    208                                                  ctrl_out((/ 1, 10, 10, 10, 10 /),'wbilo_oce'), &
    209                                                  ctrl_out((/ 1, 10, 10, 10, 10 /),'wbilo_sic') /)
    210 
    211 
    212   type(ctrl_out),save :: o_cdrm         = ctrl_out((/ 1, 10, 10, 10, 10 /),'cdrm')
    213   type(ctrl_out),save :: o_cdrh         = ctrl_out((/ 1, 10, 10, 7, 10 /),'cdrh')
    214   type(ctrl_out),save :: o_cldl         = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldl')
    215   type(ctrl_out),save :: o_cldm         = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldm')
    216   type(ctrl_out),save :: o_cldh         = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldh')
    217   type(ctrl_out),save :: o_cldt         = ctrl_out((/ 1, 1, 2, 10, 5 /),'cldt')
    218   type(ctrl_out),save :: o_cldq         = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldq')
    219   type(ctrl_out),save :: o_lwp          = ctrl_out((/ 1, 5, 10, 10, 10 /),'lwp')
    220   type(ctrl_out),save :: o_iwp          = ctrl_out((/ 1, 5, 10, 10, 10 /),'iwp')
    221   type(ctrl_out),save :: o_ue           = ctrl_out((/ 1, 10, 10, 10, 10 /),'ue')
    222   type(ctrl_out),save :: o_ve           = ctrl_out((/ 1, 10, 10, 10, 10 /),'ve')
    223   type(ctrl_out),save :: o_uq           = ctrl_out((/ 1, 10, 10, 10, 10 /),'uq')
    224   type(ctrl_out),save :: o_vq           = ctrl_out((/ 1, 10, 10, 10, 10 /),'vq')
     199  type(ctrl_out),save,dimension(4) :: o_fsw_srf      = (/ ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'fsw_ter'), &
     200                                                  ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'fsw_lic'), &
     201                                                  ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'fsw_oce'), &
     202                                                  ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'fsw_sic') /)
     203
     204  type(ctrl_out),save,dimension(4) :: o_wbils_srf    = (/ ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'wbils_ter'), &
     205                                                 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'wbils_lic'), &
     206                                                 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'wbils_oce'), &
     207                                                 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'wbils_sic') /)
     208
     209  type(ctrl_out),save,dimension(4) :: o_wbilo_srf    = (/ ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'wbilo_ter'), &
     210                                                     ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'wbilo_lic'), &
     211                                                 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'wbilo_oce'), &
     212                                                 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'wbilo_sic') /)
     213
     214
     215  type(ctrl_out),save :: o_cdrm         = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'cdrm')
     216  type(ctrl_out),save :: o_cdrh         = ctrl_out((/ 1, 10, 10, 7, 10, 10 /),'cdrh')
     217  type(ctrl_out),save :: o_cldl         = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'cldl')
     218  type(ctrl_out),save :: o_cldm         = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'cldm')
     219  type(ctrl_out),save :: o_cldh         = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'cldh')
     220  type(ctrl_out),save :: o_cldt         = ctrl_out((/ 1, 1, 2, 10, 5, 10 /),'cldt')
     221  type(ctrl_out),save :: o_cldq         = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'cldq')
     222  type(ctrl_out),save :: o_lwp          = ctrl_out((/ 1, 5, 10, 10, 10, 10 /),'lwp')
     223  type(ctrl_out),save :: o_iwp          = ctrl_out((/ 1, 5, 10, 10, 10, 10 /),'iwp')
     224  type(ctrl_out),save :: o_ue           = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'ue')
     225  type(ctrl_out),save :: o_ve           = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'ve')
     226  type(ctrl_out),save :: o_uq           = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'uq')
     227  type(ctrl_out),save :: o_vq           = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'vq')
    225228 
    226   type(ctrl_out),save :: o_cape         = ctrl_out((/ 1, 10, 10, 10, 10 /),'cape')
    227   type(ctrl_out),save :: o_pbase        = ctrl_out((/ 1, 5, 10, 10, 10 /),'pbase')
    228   type(ctrl_out),save :: o_ptop         = ctrl_out((/ 1, 5, 10, 10, 10 /),'ptop')
    229   type(ctrl_out),save :: o_fbase        = ctrl_out((/ 1, 10, 10, 10, 10 /),'fbase')
    230   type(ctrl_out),save :: o_prw          = ctrl_out((/ 1, 1, 10, 10, 10 /),'prw')
    231 
    232   type(ctrl_out),save :: o_s_pblh       = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_pblh')
    233   type(ctrl_out),save :: o_s_pblt       = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_pblt')
    234   type(ctrl_out),save :: o_s_lcl        = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_lcl')
    235   type(ctrl_out),save :: o_s_therm      = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_therm')
     229  type(ctrl_out),save :: o_cape         = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'cape')
     230  type(ctrl_out),save :: o_pbase        = ctrl_out((/ 1, 5, 10, 10, 10, 10 /),'pbase')
     231  type(ctrl_out),save :: o_ptop         = ctrl_out((/ 1, 5, 10, 10, 10, 10 /),'ptop')
     232  type(ctrl_out),save :: o_fbase        = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'fbase')
     233  type(ctrl_out),save :: o_prw          = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'prw')
     234
     235  type(ctrl_out),save :: o_s_pblh       = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_pblh')
     236  type(ctrl_out),save :: o_s_pblt       = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_pblt')
     237  type(ctrl_out),save :: o_s_lcl        = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_lcl')
     238  type(ctrl_out),save :: o_s_therm      = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_therm')
    236239!IM : Les champs suivants (s_capCL, s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F
    237 ! type(ctrl_out),save :: o_s_capCL      = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_capCL')
    238 ! type(ctrl_out),save :: o_s_oliqCL     = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_oliqCL')
    239 ! type(ctrl_out),save :: o_s_cteiCL     = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_cteiCL')
    240 ! type(ctrl_out),save :: o_s_trmb1      = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_trmb1')
    241 ! type(ctrl_out),save :: o_s_trmb2      = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_trmb2')
    242 ! type(ctrl_out),save :: o_s_trmb3      = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_trmb3')
    243 
    244   type(ctrl_out),save :: o_slab_bils    = ctrl_out((/ 1, 1, 10, 10, 10 /),'slab_bils_oce')
    245 
    246   type(ctrl_out),save :: o_ale_bl       = ctrl_out((/ 1, 1, 1, 10, 10 /),'ale_bl')
    247   type(ctrl_out),save :: o_alp_bl       = ctrl_out((/ 1, 1, 1, 10, 10 /),'alp_bl')
    248   type(ctrl_out),save :: o_ale_wk       = ctrl_out((/ 1, 1, 1, 10, 10 /),'ale_wk')
    249   type(ctrl_out),save :: o_alp_wk       = ctrl_out((/ 1, 1, 1, 10, 10 /),'alp_wk')
    250 
    251   type(ctrl_out),save :: o_ale          = ctrl_out((/ 1, 1, 1, 10, 10 /),'ale')
    252   type(ctrl_out),save :: o_alp          = ctrl_out((/ 1, 1, 1, 10, 10 /),'alp')
    253   type(ctrl_out),save :: o_cin          = ctrl_out((/ 1, 1, 1, 10, 10 /),'cin')
    254   type(ctrl_out),save :: o_wape         = ctrl_out((/ 1, 1, 1, 10, 10 /),'wape')
     240! type(ctrl_out),save :: o_s_capCL      = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_capCL')
     241! type(ctrl_out),save :: o_s_oliqCL     = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_oliqCL')
     242! type(ctrl_out),save :: o_s_cteiCL     = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_cteiCL')
     243! type(ctrl_out),save :: o_s_trmb1      = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_trmb1')
     244! type(ctrl_out),save :: o_s_trmb2      = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_trmb2')
     245! type(ctrl_out),save :: o_s_trmb3      = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_trmb3')
     246
     247  type(ctrl_out),save :: o_slab_bils    = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'slab_bils_oce')
     248
     249  type(ctrl_out),save :: o_ale_bl       = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'ale_bl')
     250  type(ctrl_out),save :: o_alp_bl       = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'alp_bl')
     251  type(ctrl_out),save :: o_ale_wk       = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'ale_wk')
     252  type(ctrl_out),save :: o_alp_wk       = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'alp_wk')
     253
     254  type(ctrl_out),save :: o_ale          = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'ale')
     255  type(ctrl_out),save :: o_alp          = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'alp')
     256  type(ctrl_out),save :: o_cin          = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'cin')
     257  type(ctrl_out),save :: o_wape         = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'wape')
    255258
    256259
    257260! Champs interpolles sur des niveaux de pression ??? a faire correctement
    258261                                             
    259   type(ctrl_out),save,dimension(6) :: o_uSTDlevs     = (/ ctrl_out((/ 1, 7, 7, 10, 10 /),'u850'), &
    260                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'u700'), &
    261                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'u500'), &
    262                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'u200'), &
    263                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'u50'), &
    264                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'u10') /)
     262  type(ctrl_out),save,dimension(7) :: o_uSTDlevs     = (/ ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'u850'), &
     263                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'u700'), &
     264                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'u500'), &
     265                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'u200'), &
     266                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'u100'), &
     267                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'u50'), &
     268                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'u10') /)
    265269                                                     
    266270
    267   type(ctrl_out),save,dimension(6) :: o_vSTDlevs     = (/ ctrl_out((/ 1, 7, 7, 10, 10 /),'v850'), &
    268                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'v700'), &
    269                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'v500'), &
    270                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'v200'), &
    271                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'v50'), &
    272                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'v10') /)
    273 
    274   type(ctrl_out),save,dimension(6) :: o_wSTDlevs     = (/ ctrl_out((/ 1, 7, 7, 10, 10 /),'w850'), &
    275                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'w700'), &
    276                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'w500'), &
    277                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'w200'), &
    278                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'w50'), &
    279                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'w10') /)
    280 
    281   type(ctrl_out),save,dimension(6) :: o_tSTDlevs     = (/ ctrl_out((/ 1, 7, 7, 10, 10 /),'t850'), &
    282                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'t700'), &
    283                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'t500'), &
    284                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'t200'), &
    285                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'t50'), &
    286                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'t10') /)
    287 
    288   type(ctrl_out),save,dimension(6) :: o_qSTDlevs     = (/ ctrl_out((/ 1, 7, 7, 10, 10 /),'q850'), &
    289                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'q700'), &
    290                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'q500'), &
    291                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'q200'), &
    292                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'q50'), &
    293                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'q10') /)
    294 
    295   type(ctrl_out),save,dimension(6) :: o_zSTDlevs   = (/ ctrl_out((/ 1, 7, 7, 10, 10 /),'z850'), &
    296                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'z700'), &
    297                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'z500'), &
    298                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'z200'), &
    299                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'z50'), &
    300                                                      ctrl_out((/ 1, 7, 7, 10, 10 /),'z10') /)
    301 
    302 
    303   type(ctrl_out),save :: o_t_oce_sic    = ctrl_out((/ 1, 10, 10, 10, 10 /),'t_oce_sic')
    304 
    305   type(ctrl_out),save :: o_weakinv      = ctrl_out((/ 10, 1, 10, 10, 10 /),'weakinv')
    306   type(ctrl_out),save :: o_dthmin       = ctrl_out((/ 10, 1, 10, 10, 10 /),'dthmin')
    307   type(ctrl_out),save,dimension(4) :: o_u10_srf      = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'u10_ter'), &
    308                                                      ctrl_out((/ 10, 4, 10, 10, 10 /),'u10_lic'), &
    309                                                      ctrl_out((/ 10, 4, 10, 10, 10 /),'u10_oce'), &
    310                                                      ctrl_out((/ 10, 4, 10, 10, 10 /),'u10_sic') /)
    311 
    312   type(ctrl_out),save,dimension(4) :: o_v10_srf      = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'v10_ter'), &
    313                                                      ctrl_out((/ 10, 4, 10, 10, 10 /),'v10_lic'), &
    314                                                      ctrl_out((/ 10, 4, 10, 10, 10 /),'v10_oce'), &
    315                                                      ctrl_out((/ 10, 4, 10, 10, 10 /),'v10_sic') /)
    316 
    317   type(ctrl_out),save :: o_cldtau       = ctrl_out((/ 10, 5, 10, 10, 10 /),'cldtau')                     
    318   type(ctrl_out),save :: o_cldemi       = ctrl_out((/ 10, 5, 10, 10, 10 /),'cldemi')
    319   type(ctrl_out),save :: o_rh2m         = ctrl_out((/ 5, 5, 10, 10, 10 /),'rh2m')
    320   type(ctrl_out),save :: o_rh2m_min     = ctrl_out((/ 10, 5, 10, 10, 10 /),'rh2m_min')
    321   type(ctrl_out),save :: o_rh2m_max     = ctrl_out((/ 10, 5, 10, 10, 10 /),'rh2m_max')
    322   type(ctrl_out),save :: o_qsat2m       = ctrl_out((/ 10, 5, 10, 10, 10 /),'qsat2m')
    323   type(ctrl_out),save :: o_tpot         = ctrl_out((/ 10, 5, 10, 10, 10 /),'tpot')
    324   type(ctrl_out),save :: o_tpote        = ctrl_out((/ 10, 5, 10, 10, 10 /),'tpote')
    325   type(ctrl_out),save :: o_tke          = ctrl_out((/ 4, 10, 10, 10, 10 /),'tke ')
    326   type(ctrl_out),save :: o_tke_max      = ctrl_out((/ 4, 10, 10, 10, 10 /),'tke_max')
    327 
    328   type(ctrl_out),save,dimension(4) :: o_tke_srf      = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_ter'), &
    329                                                      ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_lic'), &
    330                                                      ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_oce'), &
    331                                                      ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_sic') /)
    332 
    333   type(ctrl_out),save,dimension(4) :: o_tke_max_srf  = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_max_ter'), &
    334                                                      ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_max_lic'), &
    335                                                      ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_max_oce'), &
    336                                                      ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_max_sic') /)
    337 
    338   type(ctrl_out),save :: o_kz           = ctrl_out((/ 4, 10, 10, 10, 10 /),'kz')
    339   type(ctrl_out),save :: o_kz_max       = ctrl_out((/ 4, 10, 10, 10, 10 /),'kz_max')
    340   type(ctrl_out),save :: o_SWnetOR      = ctrl_out((/ 10, 10, 2, 10, 10 /),'SWnetOR')
    341   type(ctrl_out),save :: o_SWdownOR     = ctrl_out((/ 10, 10, 2, 10, 10 /),'SWdownOR')
    342   type(ctrl_out),save :: o_LWdownOR     = ctrl_out((/ 10, 10, 2, 10, 10 /),'LWdownOR')
    343 
    344   type(ctrl_out),save :: o_snowl        = ctrl_out((/ 10, 1, 10, 10, 10 /),'snowl')
    345   type(ctrl_out),save :: o_cape_max     = ctrl_out((/ 10, 1, 10, 10, 10 /),'cape_max')
    346   type(ctrl_out),save :: o_solldown     = ctrl_out((/ 10, 1, 10, 10, 10 /),'solldown')
    347 
    348   type(ctrl_out),save :: o_dtsvdfo      = ctrl_out((/ 10, 10, 10, 10, 10 /),'dtsvdfo')
    349   type(ctrl_out),save :: o_dtsvdft      = ctrl_out((/ 10, 10, 10, 10, 10 /),'dtsvdft')
    350   type(ctrl_out),save :: o_dtsvdfg      = ctrl_out((/ 10, 10, 10, 10, 10 /),'dtsvdfg')
    351   type(ctrl_out),save :: o_dtsvdfi      = ctrl_out((/ 10, 10, 10, 10, 10 /),'dtsvdfi')
    352   type(ctrl_out),save :: o_rugs         = ctrl_out((/ 10, 10, 10, 10, 10 /),'rugs')
    353 
    354   type(ctrl_out),save :: o_topswad      = ctrl_out((/ 2, 10, 10, 10, 10 /),'topswad')
    355   type(ctrl_out),save :: o_topswai      = ctrl_out((/ 2, 10, 10, 10, 10 /),'topswai')
    356   type(ctrl_out),save :: o_solswad      = ctrl_out((/ 2, 10, 10, 10, 10 /),'solswad')
    357   type(ctrl_out),save :: o_solswai      = ctrl_out((/ 2, 10, 10, 10, 10 /),'solswai')
    358 
    359   type(ctrl_out),save,dimension(10) :: o_tausumaero  = (/ ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_ASBCM'), &
    360                                                      ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_ASPOMM'), &
    361                                                      ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_ASSO4M'), &
    362                                                      ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_CSSO4M'), &
    363                                                      ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_SSSSM'), &
    364                                                      ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_ASSSM'), &
    365                                                      ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_CSSSM'), &
    366                                                      ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_CIDUSTM'), &
    367                                                      ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_AIBCM'), &
    368                                                      ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_AIPOMM') /)
    369 
    370   type(ctrl_out),save :: o_od550aer     = ctrl_out((/ 2, 6, 10, 10, 10 /),'od550aer')
    371   type(ctrl_out),save :: o_od865aer     = ctrl_out((/ 2, 6, 10, 10, 10 /),'od865aer')
    372   type(ctrl_out),save :: o_absvisaer    = ctrl_out((/ 2, 6, 10, 10, 10 /),'absvisaer')
    373   type(ctrl_out),save :: o_od550lt1aer  = ctrl_out((/ 2, 6, 10, 10, 10 /),'od550lt1aer')
    374 
    375   type(ctrl_out),save :: o_sconcso4     = ctrl_out((/ 2, 6, 10, 10, 10 /),'sconcso4')
    376   type(ctrl_out),save :: o_sconcoa      = ctrl_out((/ 2, 6, 10, 10, 10 /),'sconcoa')
    377   type(ctrl_out),save :: o_sconcbc      = ctrl_out((/ 2, 6, 10, 10, 10 /),'sconcbc')
    378   type(ctrl_out),save :: o_sconcss      = ctrl_out((/ 2, 6, 10, 10, 10 /),'sconcss')
    379   type(ctrl_out),save :: o_sconcdust    = ctrl_out((/ 2, 6, 10, 10, 10 /),'sconcdust')
    380   type(ctrl_out),save :: o_concso4      = ctrl_out((/ 2, 6, 10, 10, 10 /),'concso4')
    381   type(ctrl_out),save :: o_concoa       = ctrl_out((/ 2, 6, 10, 10, 10 /),'concoa')
    382   type(ctrl_out),save :: o_concbc       = ctrl_out((/ 2, 6, 10, 10, 10 /),'concbc')
    383   type(ctrl_out),save :: o_concss       = ctrl_out((/ 2, 6, 10, 10, 10 /),'concss')
    384   type(ctrl_out),save :: o_concdust     = ctrl_out((/ 2, 6, 10, 10, 10 /),'concdust')
    385   type(ctrl_out),save :: o_loadso4      = ctrl_out((/ 2, 6, 10, 10, 10 /),'loadso4')
    386   type(ctrl_out),save :: o_loadoa       = ctrl_out((/ 2, 6, 10, 10, 10 /),'loadoa')
    387   type(ctrl_out),save :: o_loadbc       = ctrl_out((/ 2, 6, 10, 10, 10 /),'loadbc')
    388   type(ctrl_out),save :: o_loadss       = ctrl_out((/ 2, 6, 10, 10, 10 /),'loadss')
    389   type(ctrl_out),save :: o_loaddust     = ctrl_out((/ 2, 6, 10, 10, 10 /),'loaddust')
    390 
    391   type(ctrl_out),save :: o_swtoaas_nat  = ctrl_out((/ 4, 6, 10, 10, 10 /),'swtoaas_nat')
    392   type(ctrl_out),save :: o_swsrfas_nat  = ctrl_out((/ 4, 6, 10, 10, 10 /),'swsrfas_nat')
    393   type(ctrl_out),save :: o_swtoacs_nat  = ctrl_out((/ 4, 6, 10, 10, 10 /),'swtoacs_nat')
    394   type(ctrl_out),save :: o_swsrfcs_nat  = ctrl_out((/ 4, 6, 10, 10, 10 /),'swsrfcs_nat')
    395 
    396   type(ctrl_out),save :: o_swtoaas_ant  = ctrl_out((/ 4, 6, 10, 10, 10 /),'swtoaas_ant')
    397   type(ctrl_out),save :: o_swsrfas_ant  = ctrl_out((/ 4, 6, 10, 10, 10 /),'swsrfas_ant')
    398   type(ctrl_out),save :: o_swtoacs_ant  = ctrl_out((/ 4, 6, 10, 10, 10 /),'swtoacs_ant')
    399   type(ctrl_out),save :: o_swsrfcs_ant  = ctrl_out((/ 4, 6, 10, 10, 10 /),'swsrfcs_ant')
    400 
    401   type(ctrl_out),save :: o_swtoacf_nat  = ctrl_out((/ 4, 6, 10, 10, 10 /),'swtoacf_nat')
    402   type(ctrl_out),save :: o_swsrfcf_nat  = ctrl_out((/ 4, 6, 10, 10, 10 /),'swsrfcf_nat')
    403   type(ctrl_out),save :: o_swtoacf_ant  = ctrl_out((/ 4, 6, 10, 10, 10 /),'swtoacf_ant')
    404   type(ctrl_out),save :: o_swsrfcf_ant  = ctrl_out((/ 4, 6, 10, 10, 10 /),'swsrfcf_ant')
    405   type(ctrl_out),save :: o_swtoacf_zero = ctrl_out((/ 4, 6, 10, 10, 10 /),'swtoacf_zero')
    406   type(ctrl_out),save :: o_swsrfcf_zero = ctrl_out((/ 4, 6, 10, 10, 10 /),'swsrfcf_zero')
    407 
    408   type(ctrl_out),save :: o_cldncl       = ctrl_out((/ 2, 6, 10, 10, 10 /),'cldncl')
    409   type(ctrl_out),save :: o_reffclwtop   = ctrl_out((/ 2, 6, 10, 10, 10 /),'reffclwtop')
    410   type(ctrl_out),save :: o_cldnvi       = ctrl_out((/ 2, 6, 10, 10, 10 /),'cldnvi')
    411   type(ctrl_out),save :: o_lcc          = ctrl_out((/ 2, 6, 10, 10, 10 /),'lcc')
     271  type(ctrl_out),save,dimension(7) :: o_vSTDlevs     = (/ ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'v850'), &
     272                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'v700'), &
     273                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'v500'), &
     274                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'v200'), &
     275                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'v100'), &
     276                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'v50'), &
     277                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'v10') /)
     278
     279  type(ctrl_out),save,dimension(7) :: o_wSTDlevs     = (/ ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'w850'), &
     280                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'w700'), &
     281                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'w500'), &
     282                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'w200'), &
     283                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'w100'), &
     284                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'w50'), &
     285                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'w10') /)
     286
     287  type(ctrl_out),save,dimension(7) :: o_tSTDlevs     = (/ ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'t850'), &
     288                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'t700'), &
     289                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'t500'), &
     290                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'t200'), &
     291                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'t100'), &
     292                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'t50'), &
     293                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'t10') /)
     294
     295  type(ctrl_out),save,dimension(7) :: o_qSTDlevs     = (/ ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'q850'), &
     296                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'q700'), &
     297                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'q500'), &
     298                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'q200'), &
     299                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'q100'), &
     300                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'q50'), &
     301                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'q10') /)
     302
     303  type(ctrl_out),save,dimension(7) :: o_zSTDlevs   = (/ ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'z850'), &
     304                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'z700'), &
     305                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'z500'), &
     306                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'z200'), &
     307                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'z100'), &
     308                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'z50'), &
     309                                                     ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'z10') /)
     310
     311
     312  type(ctrl_out),save :: o_t_oce_sic    = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'t_oce_sic')
     313
     314  type(ctrl_out),save :: o_weakinv      = ctrl_out((/ 10, 1, 10, 10, 10, 10 /),'weakinv')
     315  type(ctrl_out),save :: o_dthmin       = ctrl_out((/ 10, 1, 10, 10, 10, 10 /),'dthmin')
     316  type(ctrl_out),save,dimension(4) :: o_u10_srf      = (/ ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'u10_ter'), &
     317                                                     ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'u10_lic'), &
     318                                                     ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'u10_oce'), &
     319                                                     ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'u10_sic') /)
     320
     321  type(ctrl_out),save,dimension(4) :: o_v10_srf      = (/ ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'v10_ter'), &
     322                                                     ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'v10_lic'), &
     323                                                     ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'v10_oce'), &
     324                                                     ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'v10_sic') /)
     325
     326  type(ctrl_out),save :: o_cldtau       = ctrl_out((/ 10, 5, 10, 10, 10, 10 /),'cldtau')                     
     327  type(ctrl_out),save :: o_cldemi       = ctrl_out((/ 10, 5, 10, 10, 10, 10 /),'cldemi')
     328  type(ctrl_out),save :: o_rh2m         = ctrl_out((/ 5, 5, 10, 10, 10, 10 /),'rh2m')
     329  type(ctrl_out),save :: o_rh2m_min     = ctrl_out((/ 10, 5, 10, 10, 10, 10 /),'rh2m_min')
     330  type(ctrl_out),save :: o_rh2m_max     = ctrl_out((/ 10, 5, 10, 10, 10, 10 /),'rh2m_max')
     331  type(ctrl_out),save :: o_qsat2m       = ctrl_out((/ 10, 5, 10, 10, 10, 10 /),'qsat2m')
     332  type(ctrl_out),save :: o_tpot         = ctrl_out((/ 10, 5, 10, 10, 10, 10 /),'tpot')
     333  type(ctrl_out),save :: o_tpote        = ctrl_out((/ 10, 5, 10, 10, 10, 10 /),'tpote')
     334  type(ctrl_out),save :: o_tke          = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tke ')
     335  type(ctrl_out),save :: o_tke_max      = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tke_max')
     336
     337  type(ctrl_out),save,dimension(4) :: o_tke_srf      = (/ ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'tke_ter'), &
     338                                                     ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'tke_lic'), &
     339                                                     ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'tke_oce'), &
     340                                                     ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'tke_sic') /)
     341
     342  type(ctrl_out),save,dimension(4) :: o_tke_max_srf  = (/ ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'tke_max_ter'), &
     343                                                     ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'tke_max_lic'), &
     344                                                     ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'tke_max_oce'), &
     345                                                     ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'tke_max_sic') /)
     346
     347  type(ctrl_out),save :: o_kz           = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'kz')
     348  type(ctrl_out),save :: o_kz_max       = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'kz_max')
     349  type(ctrl_out),save :: o_SWnetOR      = ctrl_out((/ 10, 10, 2, 10, 10, 10 /),'SWnetOR')
     350  type(ctrl_out),save :: o_SWdownOR     = ctrl_out((/ 10, 10, 2, 10, 10, 10 /),'SWdownOR')
     351  type(ctrl_out),save :: o_LWdownOR     = ctrl_out((/ 10, 10, 2, 10, 10, 10 /),'LWdownOR')
     352
     353  type(ctrl_out),save :: o_snowl        = ctrl_out((/ 10, 1, 10, 10, 10, 10 /),'snowl')
     354  type(ctrl_out),save :: o_cape_max     = ctrl_out((/ 10, 1, 10, 10, 10, 10 /),'cape_max')
     355  type(ctrl_out),save :: o_solldown     = ctrl_out((/ 10, 1, 10, 10, 10, 10 /),'solldown')
     356
     357  type(ctrl_out),save :: o_dtsvdfo      = ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'dtsvdfo')
     358  type(ctrl_out),save :: o_dtsvdft      = ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'dtsvdft')
     359  type(ctrl_out),save :: o_dtsvdfg      = ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'dtsvdfg')
     360  type(ctrl_out),save :: o_dtsvdfi      = ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'dtsvdfi')
     361  type(ctrl_out),save :: o_rugs         = ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'rugs')
     362
     363  type(ctrl_out),save :: o_topswad      = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'topswad')
     364  type(ctrl_out),save :: o_topswai      = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'topswai')
     365  type(ctrl_out),save :: o_solswad      = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'solswad')
     366  type(ctrl_out),save :: o_solswai      = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'solswai')
     367
     368  type(ctrl_out),save,dimension(10) :: o_tausumaero  = (/ ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_ASBCM'), &
     369                                                     ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_ASPOMM'), &
     370                                                     ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_ASSO4M'), &
     371                                                     ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_CSSO4M'), &
     372                                                     ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_SSSSM'), &
     373                                                     ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_ASSSM'), &
     374                                                     ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_CSSSM'), &
     375                                                     ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_CIDUSTM'), &
     376                                                     ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_AIBCM'), &
     377                                                     ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_AIPOMM') /)
     378
     379  type(ctrl_out),save :: o_od550aer     = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'od550aer')
     380  type(ctrl_out),save :: o_od865aer     = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'od865aer')
     381  type(ctrl_out),save :: o_absvisaer    = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'absvisaer')
     382  type(ctrl_out),save :: o_od550lt1aer  = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'od550lt1aer')
     383
     384  type(ctrl_out),save :: o_sconcso4     = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'sconcso4')
     385  type(ctrl_out),save :: o_sconcoa      = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'sconcoa')
     386  type(ctrl_out),save :: o_sconcbc      = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'sconcbc')
     387  type(ctrl_out),save :: o_sconcss      = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'sconcss')
     388  type(ctrl_out),save :: o_sconcdust    = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'sconcdust')
     389  type(ctrl_out),save :: o_concso4      = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'concso4')
     390  type(ctrl_out),save :: o_concoa       = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'concoa')
     391  type(ctrl_out),save :: o_concbc       = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'concbc')
     392  type(ctrl_out),save :: o_concss       = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'concss')
     393  type(ctrl_out),save :: o_concdust     = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'concdust')
     394  type(ctrl_out),save :: o_loadso4      = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'loadso4')
     395  type(ctrl_out),save :: o_loadoa       = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'loadoa')
     396  type(ctrl_out),save :: o_loadbc       = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'loadbc')
     397  type(ctrl_out),save :: o_loadss       = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'loadss')
     398  type(ctrl_out),save :: o_loaddust     = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'loaddust')
     399
     400  type(ctrl_out),save :: o_swtoaas_nat  = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swtoaas_nat')
     401  type(ctrl_out),save :: o_swsrfas_nat  = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swsrfas_nat')
     402  type(ctrl_out),save :: o_swtoacs_nat  = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swtoacs_nat')
     403  type(ctrl_out),save :: o_swsrfcs_nat  = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swsrfcs_nat')
     404
     405  type(ctrl_out),save :: o_swtoaas_ant  = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swtoaas_ant')
     406  type(ctrl_out),save :: o_swsrfas_ant  = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swsrfas_ant')
     407  type(ctrl_out),save :: o_swtoacs_ant  = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swtoacs_ant')
     408  type(ctrl_out),save :: o_swsrfcs_ant  = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swsrfcs_ant')
     409
     410  type(ctrl_out),save :: o_swtoacf_nat  = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swtoacf_nat')
     411  type(ctrl_out),save :: o_swsrfcf_nat  = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swsrfcf_nat')
     412  type(ctrl_out),save :: o_swtoacf_ant  = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swtoacf_ant')
     413  type(ctrl_out),save :: o_swsrfcf_ant  = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swsrfcf_ant')
     414  type(ctrl_out),save :: o_swtoacf_zero = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swtoacf_zero')
     415  type(ctrl_out),save :: o_swsrfcf_zero = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swsrfcf_zero')
     416
     417  type(ctrl_out),save :: o_cldncl       = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'cldncl')
     418  type(ctrl_out),save :: o_reffclwtop   = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'reffclwtop')
     419  type(ctrl_out),save :: o_cldnvi       = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'cldnvi')
     420  type(ctrl_out),save :: o_lcc          = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'lcc')
    412421
    413422
    414423!!!!!!!!!!!!!!!!!!!!!! 3D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    415   type(ctrl_out),save :: o_ec550aer     = ctrl_out((/ 2, 6, 10, 10, 10 /),'ec550aer')
    416   type(ctrl_out),save :: o_lwcon        = ctrl_out((/ 2, 5, 10, 10, 10 /),'lwcon')
    417   type(ctrl_out),save :: o_iwcon        = ctrl_out((/ 2, 5, 10, 10, 10 /),'iwcon')
    418   type(ctrl_out),save :: o_temp         = ctrl_out((/ 2, 3, 4, 10, 10 /),'temp')
    419   type(ctrl_out),save :: o_theta        = ctrl_out((/ 2, 3, 4, 10, 10 /),'theta')
    420   type(ctrl_out),save :: o_ovap         = ctrl_out((/ 2, 3, 4, 10, 10 /),'ovap')
    421   type(ctrl_out),save :: o_ovapinit     = ctrl_out((/ 2, 10, 10, 10, 10 /),'ovapinit')
    422   type(ctrl_out),save :: o_wvapp        = ctrl_out((/ 2, 10, 10, 10, 10 /),'wvapp')
    423   type(ctrl_out),save :: o_geop         = ctrl_out((/ 2, 3, 10, 10, 10 /),'geop')
    424   type(ctrl_out),save :: o_vitu         = ctrl_out((/ 2, 3, 4, 6, 10 /),'vitu')
    425   type(ctrl_out),save :: o_vitv         = ctrl_out((/ 2, 3, 4, 6, 10 /),'vitv')
    426   type(ctrl_out),save :: o_vitw         = ctrl_out((/ 2, 3, 10, 6, 10 /),'vitw')
    427   type(ctrl_out),save :: o_pres         = ctrl_out((/ 2, 3, 10, 10, 10 /),'pres')
    428   type(ctrl_out),save :: o_paprs        = ctrl_out((/ 2, 3, 10, 10, 10 /),'paprs')
    429   type(ctrl_out),save :: o_rneb         = ctrl_out((/ 2, 5, 10, 10, 10 /),'rneb')
    430   type(ctrl_out),save :: o_rnebcon      = ctrl_out((/ 2, 5, 10, 10, 10 /),'rnebcon')
    431   type(ctrl_out),save :: o_rhum         = ctrl_out((/ 2, 5, 10, 10, 10 /),'rhum')
    432   type(ctrl_out),save :: o_ozone        = ctrl_out((/ 2, 10, 10, 10, 10 /),'ozone')
    433   type(ctrl_out),save :: o_ozone_light  = ctrl_out((/ 2, 10, 10, 10, 10 /),'ozone_daylight')
    434   type(ctrl_out),save :: o_upwd         = ctrl_out((/ 2, 10, 10, 10, 10 /),'upwd')
    435   type(ctrl_out),save :: o_dtphy        = ctrl_out((/ 2, 10, 10, 10, 10 /),'dtphy')
    436   type(ctrl_out),save :: o_dqphy        = ctrl_out((/ 2, 10, 10, 10, 10 /),'dqphy')
    437   type(ctrl_out),save :: o_pr_con_l     = ctrl_out((/ 2, 10, 10, 10, 10 /),'pr_con_l')
    438   type(ctrl_out),save :: o_pr_con_i     = ctrl_out((/ 2, 10, 10, 10, 10 /),'pr_con_i')
    439   type(ctrl_out),save :: o_pr_lsc_l     = ctrl_out((/ 2, 10, 10, 10, 10 /),'pr_lsc_l')
    440   type(ctrl_out),save :: o_pr_lsc_i     = ctrl_out((/ 2, 10, 10, 10, 10 /),'pr_lsc_i')
    441   type(ctrl_out),save :: o_re           = ctrl_out((/ 5, 10, 10, 10, 10 /),'re')
    442   type(ctrl_out),save :: o_fl           = ctrl_out((/ 5, 10, 10, 10, 10 /),'fl')
    443   type(ctrl_out),save :: o_scdnc        = ctrl_out((/ 2,  6, 10, 10, 10 /),'scdnc')
    444   type(ctrl_out),save :: o_reffclws     = ctrl_out((/ 2,  6, 10, 10, 10 /),'reffclws')
    445   type(ctrl_out),save :: o_reffclwc     = ctrl_out((/ 2,  6, 10, 10, 10 /),'reffclwc')
    446   type(ctrl_out),save :: o_lcc3d        = ctrl_out((/ 2,  6, 10, 10, 10 /),'lcc3d')
    447   type(ctrl_out),save :: o_lcc3dcon     = ctrl_out((/ 2,  6, 10, 10, 10 /),'lcc3dcon')
    448   type(ctrl_out),save :: o_lcc3dstra    = ctrl_out((/ 2,  6, 10, 10, 10 /),'lcc3dstra')
     424  type(ctrl_out),save :: o_ec550aer     = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'ec550aer')
     425  type(ctrl_out),save :: o_lwcon        = ctrl_out((/ 2, 5, 10, 10, 10, 10 /),'lwcon')
     426  type(ctrl_out),save :: o_iwcon        = ctrl_out((/ 2, 5, 10, 10, 10, 10 /),'iwcon')
     427  type(ctrl_out),save :: o_temp         = ctrl_out((/ 2, 3, 4, 10, 10, 10 /),'temp')
     428  type(ctrl_out),save :: o_theta        = ctrl_out((/ 2, 3, 4, 10, 10, 10 /),'theta')
     429  type(ctrl_out),save :: o_ovap         = ctrl_out((/ 2, 3, 4, 10, 10, 10 /),'ovap')
     430  type(ctrl_out),save :: o_ovapinit     = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'ovapinit')
     431  type(ctrl_out),save :: o_wvapp        = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'wvapp')
     432  type(ctrl_out),save :: o_geop         = ctrl_out((/ 2, 3, 10, 10, 10, 10 /),'geop')
     433  type(ctrl_out),save :: o_vitu         = ctrl_out((/ 2, 3, 4, 6, 10, 10 /),'vitu')
     434  type(ctrl_out),save :: o_vitv         = ctrl_out((/ 2, 3, 4, 6, 10, 10 /),'vitv')
     435  type(ctrl_out),save :: o_vitw         = ctrl_out((/ 2, 3, 10, 6, 10, 10 /),'vitw')
     436  type(ctrl_out),save :: o_pres         = ctrl_out((/ 2, 3, 10, 10, 10, 10 /),'pres')
     437  type(ctrl_out),save :: o_paprs        = ctrl_out((/ 2, 3, 10, 10, 10, 10 /),'paprs')
     438  type(ctrl_out),save :: o_zfull       = ctrl_out((/ 2, 3, 10, 10, 10, 10 /),'zfull')
     439  type(ctrl_out),save :: o_zhalf       = ctrl_out((/ 2, 3, 10, 10, 10, 10 /),'zhalf')
     440  type(ctrl_out),save :: o_rneb         = ctrl_out((/ 2, 5, 10, 10, 10, 10 /),'rneb')
     441  type(ctrl_out),save :: o_rnebcon      = ctrl_out((/ 2, 5, 10, 10, 10, 10 /),'rnebcon')
     442  type(ctrl_out),save :: o_rhum         = ctrl_out((/ 2, 5, 10, 10, 10, 10 /),'rhum')
     443  type(ctrl_out),save :: o_ozone        = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'ozone')
     444  type(ctrl_out),save :: o_ozone_light  = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'ozone_daylight')
     445  type(ctrl_out),save :: o_upwd         = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'upwd')
     446  type(ctrl_out),save :: o_dtphy        = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'dtphy')
     447  type(ctrl_out),save :: o_dqphy        = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'dqphy')
     448  type(ctrl_out),save :: o_pr_con_l     = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'pr_con_l')
     449  type(ctrl_out),save :: o_pr_con_i     = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'pr_con_i')
     450  type(ctrl_out),save :: o_pr_lsc_l     = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'pr_lsc_l')
     451  type(ctrl_out),save :: o_pr_lsc_i     = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'pr_lsc_i')
     452  type(ctrl_out),save :: o_re           = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'re')
     453  type(ctrl_out),save :: o_fl           = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'fl')
     454  type(ctrl_out),save :: o_scdnc        = ctrl_out((/ 2,  6, 10, 10, 10, 10 /),'scdnc')
     455  type(ctrl_out),save :: o_reffclws     = ctrl_out((/ 2,  6, 10, 10, 10, 10 /),'reffclws')
     456  type(ctrl_out),save :: o_reffclwc     = ctrl_out((/ 2,  6, 10, 10, 10, 10 /),'reffclwc')
     457  type(ctrl_out),save :: o_lcc3d        = ctrl_out((/ 2,  6, 10, 10, 10, 10 /),'lcc3d')
     458  type(ctrl_out),save :: o_lcc3dcon     = ctrl_out((/ 2,  6, 10, 10, 10, 10 /),'lcc3dcon')
     459  type(ctrl_out),save :: o_lcc3dstra    = ctrl_out((/ 2,  6, 10, 10, 10, 10 /),'lcc3dstra')
    449460!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    450461
    451   type(ctrl_out),save,dimension(4) :: o_albe_srf     = (/ ctrl_out((/ 3, 7, 10, 7, 10 /),'albe_ter'), &
    452                                                      ctrl_out((/ 3, 7, 10, 7, 10 /),'albe_lic'), &
    453                                                      ctrl_out((/ 3, 7, 10, 7, 10 /),'albe_oce'), &
    454                                                      ctrl_out((/ 3, 7, 10, 7, 10 /),'albe_sic') /)
    455 
    456   type(ctrl_out),save,dimension(4) :: o_ages_srf     = (/ ctrl_out((/ 10, 10, 10, 10, 10 /),'ages_ter'), &
    457                                                      ctrl_out((/ 3, 10, 10, 10, 10 /),'ages_lic'), &
    458                                                      ctrl_out((/ 10, 10, 10, 10, 10 /),'ages_oce'), &
    459                                                      ctrl_out((/ 3, 10, 10, 10, 10 /),'ages_sic') /)
    460 
    461   type(ctrl_out),save,dimension(4) :: o_rugs_srf     = (/ ctrl_out((/ 3, 6, 10, 10, 10 /),'rugs_ter'), &
    462                                                      ctrl_out((/ 3, 6, 10, 10, 10 /),'rugs_lic'), &
    463                                                      ctrl_out((/ 3, 6, 10, 10, 10 /),'rugs_oce'), &
    464                                                      ctrl_out((/ 3, 6, 10, 10, 10 /),'rugs_sic') /)
    465 
    466   type(ctrl_out),save :: o_alb1         = ctrl_out((/ 3, 10, 10, 10, 10 /),'alb1')
    467   type(ctrl_out),save :: o_alb2       = ctrl_out((/ 3, 10, 10, 10, 10 /),'alb2')
    468 
    469   type(ctrl_out),save :: o_clwcon       = ctrl_out((/ 4, 10, 10, 10, 10 /),'clwcon')
    470   type(ctrl_out),save :: o_Ma           = ctrl_out((/ 4, 10, 10, 10, 10 /),'Ma')
    471   type(ctrl_out),save :: o_dnwd         = ctrl_out((/ 4, 10, 10, 10, 10 /),'dnwd')
    472   type(ctrl_out),save :: o_dnwd0        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dnwd0')
    473   type(ctrl_out),save :: o_mc           = ctrl_out((/ 4, 5, 10, 10, 10 /),'mc')
    474   type(ctrl_out),save :: o_ftime_con    = ctrl_out((/ 4, 10, 10, 10, 10 /),'ftime_con')
    475   type(ctrl_out),save :: o_dtdyn        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtdyn')
    476   type(ctrl_out),save :: o_dqdyn        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqdyn')
    477   type(ctrl_out),save :: o_dudyn        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dudyn')  !AXC
    478   type(ctrl_out),save :: o_dvdyn        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dvdyn')  !AXC
    479   type(ctrl_out),save :: o_dtcon        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtcon')
    480   type(ctrl_out),save :: o_ducon        = ctrl_out((/ 4, 10, 10, 10, 10 /),'ducon')
    481   type(ctrl_out),save :: o_dqcon        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqcon')
    482   type(ctrl_out),save :: o_dtwak        = ctrl_out((/ 4, 5, 10, 10, 10 /),'dtwak')
    483   type(ctrl_out),save :: o_dqwak        = ctrl_out((/ 4, 5, 10, 10, 10 /),'dqwak')
    484   type(ctrl_out),save :: o_wake_h       = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_h')
    485   type(ctrl_out),save :: o_wake_s       = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_s')
    486   type(ctrl_out),save :: o_wake_deltat  = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_deltat')
    487   type(ctrl_out),save :: o_wake_deltaq  = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_deltaq')
    488   type(ctrl_out),save :: o_wake_omg     = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_omg')
    489   type(ctrl_out),save :: o_Vprecip      = ctrl_out((/ 10, 10, 10, 10, 10 /),'Vprecip')
    490   type(ctrl_out),save :: o_ftd          = ctrl_out((/ 4, 5, 10, 10, 10 /),'ftd')
    491   type(ctrl_out),save :: o_fqd          = ctrl_out((/ 4, 5, 10, 10, 10 /),'fqd')
    492   type(ctrl_out),save :: o_dtlsc        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtlsc')
    493   type(ctrl_out),save :: o_dtlschr      = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtlschr')
    494   type(ctrl_out),save :: o_dqlsc        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqlsc')
    495   type(ctrl_out),save :: o_dtvdf        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtvdf')
    496   type(ctrl_out),save :: o_dqvdf        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqvdf')
    497   type(ctrl_out),save :: o_dteva        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dteva')
    498   type(ctrl_out),save :: o_dqeva        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqeva')
    499   type(ctrl_out),save :: o_ptconv       = ctrl_out((/ 4, 10, 10, 10, 10 /),'ptconv')
    500   type(ctrl_out),save :: o_ratqs        = ctrl_out((/ 4, 10, 10, 10, 10 /),'ratqs')
    501   type(ctrl_out),save :: o_dtthe        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtthe')
    502   type(ctrl_out),save :: o_f_th         = ctrl_out((/ 4, 10, 10, 10, 10 /),'f_th')
    503   type(ctrl_out),save :: o_e_th         = ctrl_out((/ 4, 10, 10, 10, 10 /),'e_th')
    504   type(ctrl_out),save :: o_w_th         = ctrl_out((/ 4, 10, 10, 10, 10 /),'w_th')
    505   type(ctrl_out),save :: o_lambda_th    = ctrl_out((/ 10, 10, 10, 10, 10 /),'lambda_th')
    506   type(ctrl_out),save :: o_ftime_th     = ctrl_out((/ 4, 10, 10, 10, 10 /),'ftime_th')
    507   type(ctrl_out),save :: o_q_th         = ctrl_out((/ 4, 10, 10, 10, 10 /),'q_th')
    508   type(ctrl_out),save :: o_a_th         = ctrl_out((/ 4, 10, 10, 10, 10 /),'a_th')
    509   type(ctrl_out),save :: o_d_th         = ctrl_out((/ 4, 10, 10, 10, 10 /),'d_th')
    510   type(ctrl_out),save :: o_f0_th        = ctrl_out((/ 4, 10, 10, 10, 10 /),'f0_th')
    511   type(ctrl_out),save :: o_zmax_th      = ctrl_out((/ 4, 10, 10, 10, 10 /),'zmax_th')
    512   type(ctrl_out),save :: o_dqthe        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqthe')
    513   type(ctrl_out),save :: o_dtajs        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtajs')
    514   type(ctrl_out),save :: o_dqajs        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqajs')
    515   type(ctrl_out),save :: o_dtswr        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtswr')
    516   type(ctrl_out),save :: o_dtsw0        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtsw0')
    517   type(ctrl_out),save :: o_dtlwr        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtlwr')
    518   type(ctrl_out),save :: o_dtlw0        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtlw0')
    519   type(ctrl_out),save :: o_dtec         = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtec')
    520   type(ctrl_out),save :: o_duvdf        = ctrl_out((/ 4, 10, 10, 10, 10 /),'duvdf')
    521   type(ctrl_out),save :: o_dvvdf        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dvvdf')
    522   type(ctrl_out),save :: o_duoro        = ctrl_out((/ 4, 10, 10, 10, 10 /),'duoro')
    523   type(ctrl_out),save :: o_dvoro        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dvoro')
    524   type(ctrl_out),save :: o_dulif        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dulif')
    525   type(ctrl_out),save :: o_dvlif        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dvlif')
    526   type(ctrl_out),save :: o_duhin        = ctrl_out((/ 4, 10, 10, 10, 10 /),'duhin')
    527   type(ctrl_out),save :: o_dvhin        = ctrl_out((/ 4, 10, 10, 10, 10 /),'dvhin')
     462  type(ctrl_out),save,dimension(4) :: o_albe_srf     = (/ ctrl_out((/ 3, 7, 10, 7, 10, 10 /),'albe_ter'), &
     463                                                     ctrl_out((/ 3, 7, 10, 7, 10, 10 /),'albe_lic'), &
     464                                                     ctrl_out((/ 3, 7, 10, 7, 10, 10 /),'albe_oce'), &
     465                                                     ctrl_out((/ 3, 7, 10, 7, 10, 10 /),'albe_sic') /)
     466
     467  type(ctrl_out),save,dimension(4) :: o_ages_srf     = (/ ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'ages_ter'), &
     468                                                     ctrl_out((/ 3, 10, 10, 10, 10, 10 /),'ages_lic'), &
     469                                                     ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'ages_oce'), &
     470                                                     ctrl_out((/ 3, 10, 10, 10, 10, 10 /),'ages_sic') /)
     471
     472  type(ctrl_out),save,dimension(4) :: o_rugs_srf     = (/ ctrl_out((/ 3, 6, 10, 10, 10, 10 /),'rugs_ter'), &
     473                                                     ctrl_out((/ 3, 6, 10, 10, 10, 10 /),'rugs_lic'), &
     474                                                     ctrl_out((/ 3, 6, 10, 10, 10, 10 /),'rugs_oce'), &
     475                                                     ctrl_out((/ 3, 6, 10, 10, 10, 10 /),'rugs_sic') /)
     476
     477  type(ctrl_out),save :: o_alb1         = ctrl_out((/ 3, 10, 10, 10, 10, 10 /),'alb1')
     478  type(ctrl_out),save :: o_alb2       = ctrl_out((/ 3, 10, 10, 10, 10, 10 /),'alb2')
     479
     480  type(ctrl_out),save :: o_clwcon       = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'clwcon')
     481  type(ctrl_out),save :: o_Ma           = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'Ma')
     482  type(ctrl_out),save :: o_dnwd         = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dnwd')
     483  type(ctrl_out),save :: o_dnwd0        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dnwd0')
     484  type(ctrl_out),save :: o_mc           = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'mc')
     485  type(ctrl_out),save :: o_ftime_con    = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'ftime_con')
     486  type(ctrl_out),save :: o_dtdyn        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtdyn')
     487  type(ctrl_out),save :: o_dqdyn        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dqdyn')
     488  type(ctrl_out),save :: o_dudyn        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dudyn')  !AXC
     489  type(ctrl_out),save :: o_dvdyn        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dvdyn')  !AXC
     490  type(ctrl_out),save :: o_dtcon        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtcon')
     491  type(ctrl_out),save :: o_ducon        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'ducon')
     492  type(ctrl_out),save :: o_dqcon        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dqcon')
     493  type(ctrl_out),save :: o_dtwak        = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'dtwak')
     494  type(ctrl_out),save :: o_dqwak        = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'dqwak')
     495  type(ctrl_out),save :: o_wake_h       = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'wake_h')
     496  type(ctrl_out),save :: o_wake_s       = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'wake_s')
     497  type(ctrl_out),save :: o_wake_deltat  = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'wake_deltat')
     498  type(ctrl_out),save :: o_wake_deltaq  = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'wake_deltaq')
     499  type(ctrl_out),save :: o_wake_omg     = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'wake_omg')
     500  type(ctrl_out),save :: o_Vprecip      = ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'Vprecip')
     501  type(ctrl_out),save :: o_ftd          = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'ftd')
     502  type(ctrl_out),save :: o_fqd          = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'fqd')
     503  type(ctrl_out),save :: o_dtlsc        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtlsc')
     504  type(ctrl_out),save :: o_dtlschr      = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtlschr')
     505  type(ctrl_out),save :: o_dqlsc        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dqlsc')
     506  type(ctrl_out),save :: o_dtvdf        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtvdf')
     507  type(ctrl_out),save :: o_dqvdf        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dqvdf')
     508  type(ctrl_out),save :: o_dteva        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dteva')
     509  type(ctrl_out),save :: o_dqeva        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dqeva')
     510  type(ctrl_out),save :: o_ptconv       = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'ptconv')
     511  type(ctrl_out),save :: o_ratqs        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'ratqs')
     512  type(ctrl_out),save :: o_dtthe        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtthe')
     513  type(ctrl_out),save :: o_f_th         = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'f_th')
     514  type(ctrl_out),save :: o_e_th         = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'e_th')
     515  type(ctrl_out),save :: o_w_th         = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'w_th')
     516  type(ctrl_out),save :: o_lambda_th    = ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'lambda_th')
     517  type(ctrl_out),save :: o_ftime_th     = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'ftime_th')
     518  type(ctrl_out),save :: o_q_th         = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'q_th')
     519  type(ctrl_out),save :: o_a_th         = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'a_th')
     520  type(ctrl_out),save :: o_d_th         = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'d_th')
     521  type(ctrl_out),save :: o_f0_th        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'f0_th')
     522  type(ctrl_out),save :: o_zmax_th      = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'zmax_th')
     523  type(ctrl_out),save :: o_dqthe        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dqthe')
     524  type(ctrl_out),save :: o_dtajs        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtajs')
     525  type(ctrl_out),save :: o_dqajs        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dqajs')
     526  type(ctrl_out),save :: o_dtswr        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtswr')
     527  type(ctrl_out),save :: o_dtsw0        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtsw0')
     528  type(ctrl_out),save :: o_dtlwr        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtlwr')
     529  type(ctrl_out),save :: o_dtlw0        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtlw0')
     530  type(ctrl_out),save :: o_dtec         = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtec')
     531  type(ctrl_out),save :: o_duvdf        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'duvdf')
     532  type(ctrl_out),save :: o_dvvdf        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dvvdf')
     533  type(ctrl_out),save :: o_duoro        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'duoro')
     534  type(ctrl_out),save :: o_dvoro        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dvoro')
     535  type(ctrl_out),save :: o_dulif        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dulif')
     536  type(ctrl_out),save :: o_dvlif        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dvlif')
     537  type(ctrl_out),save :: o_duhin        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'duhin')
     538  type(ctrl_out),save :: o_dvhin        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dvhin')
     539  type(ctrl_out),save :: o_dtoro        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtoro')
     540  type(ctrl_out),save :: o_dtlif        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtlif')
     541  type(ctrl_out),save :: o_dthin        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dthin')
    528542
    529543! Attention a refaire correctement
    530   type(ctrl_out),save,dimension(2) :: o_trac         = (/ ctrl_out((/ 4, 10, 10, 10, 10 /),'trac01'), &
    531                                                      ctrl_out((/ 4, 10, 10, 10, 10 /),'trac02') /)
     544  type(ctrl_out),save,dimension(2) :: o_trac         = (/ ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'trac01'), &
     545                                                     ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'trac02') /)
     546
     547  type(ctrl_out),save :: o_rsu        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'rsu')
     548  type(ctrl_out),save :: o_rsd        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'rsd')
     549  type(ctrl_out),save :: o_rlu        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'rlu')
     550  type(ctrl_out),save :: o_rld        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'rld')
     551  type(ctrl_out),save :: o_rsucs      = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'rsucs')
     552  type(ctrl_out),save :: o_rsdcs      = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'rsdcs')
     553  type(ctrl_out),save :: o_rlucs      = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'rlucs')
     554  type(ctrl_out),save :: o_rldcs      = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'rldcs')
     555
     556  type(ctrl_out),save :: o_tnt          = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tnt')
     557  type(ctrl_out),save :: o_tntc         = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tntc')
     558  type(ctrl_out),save :: o_tntr        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tntr')
     559  type(ctrl_out),save :: o_tntscpbl          = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tntscpbl')
     560
     561  type(ctrl_out),save :: o_tnhus          = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tnhus')
     562  type(ctrl_out),save :: o_tnhusc         = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tnhusc')
     563  type(ctrl_out),save :: o_tnhusscpbl     = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tnhusscpbl')
     564
     565  type(ctrl_out),save :: o_evu          = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'evu')
     566
     567  type(ctrl_out),save :: o_h2o          = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'h2o')
     568
     569  type(ctrl_out),save :: o_mcd          = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'mcd')
     570  type(ctrl_out),save :: o_dmc          = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dmc')
     571  type(ctrl_out),save :: o_ref_liq      = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'ref_liq')
     572  type(ctrl_out),save :: o_ref_ice      = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'ref_ice')
     573
     574  type(ctrl_out),save :: o_rsut4co2     = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rsut4co2')
     575  type(ctrl_out),save :: o_rlut4co2     = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rlut4co2')
     576  type(ctrl_out),save :: o_rsutcs4co2   = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rsutcs4co2')
     577  type(ctrl_out),save :: o_rlutcs4co2   = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rlutcs4co2')
     578
     579  type(ctrl_out),save :: o_rsu4co2     = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rsu4co2')
     580  type(ctrl_out),save :: o_rlu4co2     = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rlu4co2')
     581  type(ctrl_out),save :: o_rsucs4co2   = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rsucs4co2')
     582  type(ctrl_out),save :: o_rlucs4co2   = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rlucs4co2')
     583  type(ctrl_out),save :: o_rsd4co2     = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rsd4co2')
     584  type(ctrl_out),save :: o_rld4co2     = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rld4co2')
     585  type(ctrl_out),save :: o_rsdcs4co2   = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rsdcs4co2')
     586  type(ctrl_out),save :: o_rldcs4co2   = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rldcs4co2')
     587
     588
    532589    CONTAINS
    533590
     
    537594!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    538595 
    539   SUBROUTINE phys_output_open(jjmp1,nlevSTD,clevSTD,nbteta, &
    540        ctetaSTD,dtime, ok_veget, &
     596  SUBROUTINE phys_output_open(rlon,rlat,pim,tabij,ipt,jpt,plon,plat, &
     597       jjmp1,nlevSTD,clevSTD,nbteta, &
     598       ctetaSTD, dtime, ok_veget, &
    541599       type_ocean, iflag_pbl,ok_mensuel,ok_journe, &
    542600       ok_hf,ok_instan,ok_LES,ok_ade,ok_aie, read_climoz, &
     601       phys_out_filestations, &
    543602       new_aod, aerosol_couple)   
    544 
    545603
    546604  USE iophy
     
    558616  include "thermcell.h"
    559617  include "comvert.h"
     618
     619    real,dimension(klon),intent(in) :: rlon
     620    real,dimension(klon),intent(in) :: rlat
     621    integer, intent(in)             :: pim
     622    INTEGER, DIMENSION(pim)            :: tabij
     623    INTEGER,dimension(pim), intent(in) :: ipt, jpt
     624    REAL,dimension(pim), intent(in) :: plat, plon
     625    REAL,dimension(pim,2) :: plat_bounds, plon_bounds
    560626
    561627  integer                               :: jjmp1
     
    593659  integer, dimension(nfiles)            :: phys_out_filelevels
    594660  CHARACTER(len=20), dimension(nfiles)  :: type_ecri_files, phys_out_filetypes
    595   character(len=20), dimension(nfiles)  :: chtimestep   = (/ 'DefFreq', 'DefFreq','DefFreq', 'DefFreq', 'DefFreq' /)
     661  character(len=20), dimension(nfiles)  :: chtimestep   = (/ 'DefFreq', 'DefFreq','DefFreq', 'DefFreq', 'DefFreq', 'DefFreq' /)
    596662  logical, dimension(nfiles)            :: phys_out_filekeys
     663  logical, dimension(nfiles)            :: phys_out_filestations
    597664
    598665!!!!!!!!!! stockage dans une region limitee pour chaque fichier !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    599666!                 entre [phys_out_lonmin,phys_out_lonmax] et [phys_out_latmin,phys_out_latmax]
    600667
    601   logical, dimension(nfiles), save  :: phys_out_regfkey       = (/ .false., .false., .false., .false., .false. /)
    602   real, dimension(nfiles), save     :: phys_out_lonmin        = (/ -180., -180., -180., -180., -180. /)
    603   real, dimension(nfiles), save     :: phys_out_lonmax        = (/ 180., 180., 180., 180., 180. /)
    604   real, dimension(nfiles), save     :: phys_out_latmin        = (/ -90., -90., -90., -90., -90. /)
    605   real, dimension(nfiles), save     :: phys_out_latmax        = (/ 90., 90., 90., 90., 90. /)
    606  
    607  
     668  logical, dimension(nfiles), save  :: phys_out_regfkey       = (/ .false., .false., .false., .false., .false., .false. /)
     669  real, dimension(nfiles), save     :: phys_out_lonmin        = (/ -180., -180., -180., -180., -180., -180. /)
     670  real, dimension(nfiles), save     :: phys_out_lonmax        = (/ 180., 180., 180., 180., 180., 180. /)
     671  real, dimension(nfiles), save     :: phys_out_latmin        = (/ -90., -90., -90., -90., -90., -90. /)
     672  real, dimension(nfiles), save     :: phys_out_latmax        = (/ 90., 90., 90., 90., 90., 90. /)
    608673
    609674!
    610675   print*,'Debut phys_output_mod.F90'
    611676! Initialisations (Valeurs par defaut
    612    levmax = (/ klev, klev, klev, klev, klev /)
     677   levmax = (/ klev, klev, klev, klev, klev, klev /)
    613678
    614679   phys_out_filenames(1) = 'histmth'
     
    617682   phys_out_filenames(4) = 'histins'
    618683   phys_out_filenames(5) = 'histLES'
     684   phys_out_filenames(6) = 'histstn'
    619685
    620686   type_ecri(1) = 'ave(X)'
     
    623689   type_ecri(4) = 'inst(X)'
    624690   type_ecri(5) = 'ave(X)'
     691   type_ecri(6) = 'inst(X)'
    625692
    626693   clef_files(1) = ok_mensuel
     
    629696   clef_files(4) = ok_instan
    630697   clef_files(5) = ok_LES
     698   clef_files(6) = ok_instan
     699
     700!sortir des fichiers "stations" si clef_stations(:)=.TRUE.
     701   clef_stations(1) = .FALSE.
     702   clef_stations(2) = .FALSE.
     703   clef_stations(3) = .FALSE.
     704   clef_stations(4) = .FALSE.
     705   clef_stations(5) = .FALSE.
     706   clef_stations(6) = .TRUE.
    631707
    632708   lev_files(1) = lev_histmth
     
    635711   lev_files(4) = lev_histins
    636712   lev_files(5) = lev_histLES
    637 
     713   lev_files(6) = lev_histins
    638714
    639715   ecrit_files(1) = ecrit_mth
     
    642718   ecrit_files(4) = ecrit_ins
    643719   ecrit_files(5) = ecrit_LES
     720   ecrit_files(6) = ecrit_ins
    644721 
    645722!! Lectures des parametres de sorties dans physiq.def
     
    657734     phys_out_filekeys(:)=clef_files(:)
    658735   call getin('phys_out_filekeys',clef_files)
     736     phys_out_filestations(:)=clef_stations(:)
     737   call getin('phys_out_filestations',clef_stations)
    659738     phys_out_filelevels(:)=lev_files(:)
    660739   call getin('phys_out_filelevels',lev_files)
     
    672751   print*,'phys_out_filetypes=',type_ecri
    673752   print*,'phys_out_filekeys=',clef_files
     753   print*,'phys_out_filestations=',clef_stations
    674754   print*,'phys_out_filelevels=',lev_files
    675755
     
    743823              itau_phy,zjulian,dtime,nhorim(iff),nid_files(iff))
    744824!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     825!IM fichiers stations
     826     else if (clef_stations(iff)) THEN
     827
     828     print*,'phys_output_mod phys_out_filenames=',phys_out_filenames(iff)
     829
     830      call histbeg_phy_all(rlon,rlat,pim,tabij,ipt,jpt,plon,plat,plon_bounds,plat_bounds, &
     831                           phys_out_filenames(iff), &
     832                           itau_phy,zjulian,dtime,nhorim(iff),nid_files(iff))
    745833       else
    746834 CALL histbeg_phy(phys_out_filenames(iff),itau_phy,zjulian,dtime,nhorim(iff),nid_files(iff))
    747835       endif
    748  
    749       CALL histvert(nid_files(iff), "presnivs", "Vertical levels", "Pa", &
     836
     837       CALL histvert(nid_files(iff), "presnivs", "Vertical levels", "Pa", &
    750838           levmax(iff) - levmin(iff) + 1, &
    751839           presnivs(levmin(iff):levmax(iff)), nvertm(iff),"down")
     
    776864!                 1,preff,nvertp0(iff))
    777865!!! Champs 1D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    778  CALL histdef2d(iff,o_phis%flag,o_phis%name,"Surface geop.height", "m2/s2")
     866 IF (.NOT.clef_stations(iff)) THEN
     867!
     868!IM: there is no way to have one single value in a netcdf file
     869!
    779870   type_ecri(1) = 'once'
    780871   type_ecri(2) = 'once'
     
    782873   type_ecri(4) = 'once'
    783874   type_ecri(5) = 'once'
    784  CALL histdef2d(iff,o_aire%flag,o_aire%name,"Grid area", "-")
    785  CALL histdef2d(iff,o_contfracATM%flag,o_contfracATM%name,"% sfce ter+lic", "-")
     875   type_ecri(6) = 'once'
     876   CALL histdef2d(iff,clef_stations(iff),o_aire%flag,o_aire%name,"Grid area", "-")
     877   CALL histdef2d(iff,clef_stations(iff),o_contfracATM%flag,o_contfracATM%name,"% sfce ter+lic", "-")
     878 ENDIF
    786879   type_ecri(:) = type_ecri_files(:)
    787880
    788881!!! Champs 2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    789  CALL histdef2d(iff,o_contfracOR%flag,o_contfracOR%name,"% sfce terre OR", "-" )
    790  CALL histdef2d(iff,o_aireTER%flag,o_aireTER%name,"Grid area CONT", "-" )
    791  CALL histdef2d(iff,o_flat%flag,o_flat%name, "Latent heat flux", "W/m2")
    792  CALL histdef2d(iff,o_slp%flag,o_slp%name, "Sea Level Pressure", "Pa" )
    793  CALL histdef2d(iff,o_tsol%flag,o_tsol%name, "Surface Temperature", "K")
    794  CALL histdef2d(iff,o_t2m%flag,o_t2m%name, "Temperature 2m", "K" )
     882 CALL histdef2d(iff,clef_stations(iff),o_phis%flag,o_phis%name,"Surface geop.height", "m2/s2" )
     883 CALL histdef2d(iff,clef_stations(iff),o_contfracOR%flag,o_contfracOR%name,"% sfce terre OR", "-" )
     884 CALL histdef2d(iff,clef_stations(iff),o_aireTER%flag,o_aireTER%name,"Grid area CONT", "-" )
     885 CALL histdef2d(iff,clef_stations(iff),o_flat%flag,o_flat%name, "Latent heat flux", "W/m2")
     886 CALL histdef2d(iff,clef_stations(iff),o_slp%flag,o_slp%name, "Sea Level Pressure", "Pa" )
     887 CALL histdef2d(iff,clef_stations(iff),o_tsol%flag,o_tsol%name, "Surface Temperature", "K")
     888 CALL histdef2d(iff,clef_stations(iff),o_t2m%flag,o_t2m%name, "Temperature 2m", "K" )
     889  IF (.NOT.clef_stations(iff)) THEN
     890!
     891!IM: there is no way to have one single value in a netcdf file
     892!
    795893   type_ecri(1) = 't_min(X)'
    796894   type_ecri(2) = 't_min(X)'
     
    798896   type_ecri(4) = 't_min(X)'
    799897   type_ecri(5) = 't_min(X)'
    800  CALL histdef2d(iff,o_t2m_min%flag,o_t2m_min%name, "Temp 2m min", "K" )
     898   type_ecri(6) = 't_min(X)'
     899   CALL histdef2d(iff,clef_stations(iff),o_t2m_min%flag,o_t2m_min%name, "Temp 2m min", "K" )
    801900   type_ecri(1) = 't_max(X)'
    802901   type_ecri(2) = 't_max(X)'
     
    804903   type_ecri(4) = 't_max(X)'
    805904   type_ecri(5) = 't_max(X)'
    806  CALL histdef2d(iff,o_t2m_max%flag,o_t2m_max%name, "Temp 2m max", "K" )
     905   type_ecri(6) = 't_max(X)'
     906   CALL histdef2d(iff,clef_stations(iff),o_t2m_max%flag,o_t2m_max%name, "Temp 2m max", "K" )
     907  ENDIF
    807908   type_ecri(:) = type_ecri_files(:)
    808  CALL histdef2d(iff,o_wind10m%flag,o_wind10m%name, "10-m wind speed", "m/s")
    809  CALL histdef2d(iff,o_wind10max%flag,o_wind10max%name, "10m wind speed max", "m/s")
    810  CALL histdef2d(iff,o_sicf%flag,o_sicf%name, "Sea-ice fraction", "-" )
    811  CALL histdef2d(iff,o_q2m%flag,o_q2m%name, "Specific humidity 2m", "kg/kg")
    812  CALL histdef2d(iff,o_u10m%flag,o_u10m%name, "Vent zonal 10m", "m/s" )
    813  CALL histdef2d(iff,o_v10m%flag,o_v10m%name, "Vent meridien 10m", "m/s")
    814  CALL histdef2d(iff,o_psol%flag,o_psol%name, "Surface Pressure", "Pa" )
    815  CALL histdef2d(iff,o_qsurf%flag,o_qsurf%name, "Surface Air humidity", "kg/kg")
     909 CALL histdef2d(iff,clef_stations(iff),o_wind10m%flag,o_wind10m%name, "10-m wind speed", "m/s")
     910 CALL histdef2d(iff,clef_stations(iff),o_wind10max%flag,o_wind10max%name, "10m wind speed max", "m/s")
     911 CALL histdef2d(iff,clef_stations(iff),o_sicf%flag,o_sicf%name, "Sea-ice fraction", "-" )
     912 CALL histdef2d(iff,clef_stations(iff),o_q2m%flag,o_q2m%name, "Specific humidity 2m", "kg/kg")
     913 CALL histdef2d(iff,clef_stations(iff),o_u10m%flag,o_u10m%name, "Vent zonal 10m", "m/s" )
     914 CALL histdef2d(iff,clef_stations(iff),o_v10m%flag,o_v10m%name, "Vent meridien 10m", "m/s")
     915 CALL histdef2d(iff,clef_stations(iff),o_psol%flag,o_psol%name, "Surface Pressure", "Pa" )
     916 CALL histdef2d(iff,clef_stations(iff),o_qsurf%flag,o_qsurf%name, "Surface Air humidity", "kg/kg")
    816917
    817918  if (.not. ok_veget) then
    818  CALL histdef2d(iff,o_qsol%flag,o_qsol%name, "Soil watter content", "mm" )
     919 CALL histdef2d(iff,clef_stations(iff),o_qsol%flag,o_qsol%name, "Soil watter content", "mm" )
    819920  endif
    820921
    821  CALL histdef2d(iff,o_ndayrain%flag,o_ndayrain%name, "Number of dayrain(liq+sol)", "-")
    822  CALL histdef2d(iff,o_precip%flag,o_precip%name, "Precip Totale liq+sol", "kg/(s*m2)" )
    823  CALL histdef2d(iff,o_plul%flag,o_plul%name, "Large-scale Precip.", "kg/(s*m2)")
    824  CALL histdef2d(iff,o_pluc%flag,o_pluc%name, "Convective Precip.", "kg/(s*m2)")
    825  CALL histdef2d(iff,o_snow%flag,o_snow%name, "Snow fall", "kg/(s*m2)" )
    826  CALL histdef2d(iff,o_msnow%flag,o_msnow%name, "Surface snow amount", "kg/m2" )
    827  CALL histdef2d(iff,o_fsnow%flag,o_fsnow%name, "Surface snow area fraction", "-" )
    828  CALL histdef2d(iff,o_evap%flag,o_evap%name, "Evaporat", "kg/(s*m2)" )
    829  CALL histdef2d(iff,o_tops%flag,o_tops%name, "Solar rad. at TOA", "W/m2")
    830  CALL histdef2d(iff,o_tops0%flag,o_tops0%name, "CS Solar rad. at TOA", "W/m2")
    831  CALL histdef2d(iff,o_topl%flag,o_topl%name, "IR rad. at TOA", "W/m2" )
    832  CALL histdef2d(iff,o_topl0%flag,o_topl0%name, "IR rad. at TOA", "W/m2")
    833  CALL histdef2d(iff,o_SWupTOA%flag,o_SWupTOA%name, "SWup at TOA", "W/m2")
    834  CALL histdef2d(iff,o_SWupTOAclr%flag,o_SWupTOAclr%name, "SWup clear sky at TOA", "W/m2")
    835  CALL histdef2d(iff,o_SWdnTOA%flag,o_SWdnTOA%name, "SWdn at TOA", "W/m2" )
    836  CALL histdef2d(iff,o_SWdnTOAclr%flag,o_SWdnTOAclr%name, "SWdn clear sky at TOA", "W/m2")
    837  CALL histdef2d(iff,o_nettop%flag,o_nettop%name, "Net dn radiatif flux at TOA", "W/m2")
    838  CALL histdef2d(iff,o_SWup200%flag,o_SWup200%name, "SWup at 200mb", "W/m2" )
    839  CALL histdef2d(iff,o_SWup200clr%flag,o_SWup200clr%name, "SWup clear sky at 200mb", "W/m2")
    840  CALL histdef2d(iff,o_SWdn200%flag,o_SWdn200%name, "SWdn at 200mb", "W/m2" )
    841  CALL histdef2d(iff,o_SWdn200clr%flag,o_SWdn200clr%name, "SWdn clear sky at 200mb", "W/m2")
    842  CALL histdef2d(iff,o_LWup200%flag,o_LWup200%name, "LWup at 200mb", "W/m2")
    843  CALL histdef2d(iff,o_LWup200clr%flag,o_LWup200clr%name, "LWup clear sky at 200mb", "W/m2")
    844  CALL histdef2d(iff,o_LWdn200%flag,o_LWdn200%name, "LWdn at 200mb", "W/m2")
    845  CALL histdef2d(iff,o_LWdn200clr%flag,o_LWdn200clr%name, "LWdn clear sky at 200mb", "W/m2")
    846  CALL histdef2d(iff,o_sols%flag,o_sols%name, "Solar rad. at surf.", "W/m2")
    847  CALL histdef2d(iff,o_sols0%flag,o_sols0%name, "Solar rad. at surf.", "W/m2")
    848  CALL histdef2d(iff,o_soll%flag,o_soll%name, "IR rad. at surface", "W/m2") 
    849  CALL histdef2d(iff,o_radsol%flag,o_radsol%name, "Rayonnement au sol", "W/m2")
    850  CALL histdef2d(iff,o_soll0%flag,o_soll0%name, "IR rad. at surface", "W/m2")
    851  CALL histdef2d(iff,o_SWupSFC%flag,o_SWupSFC%name, "SWup at surface", "W/m2")
    852  CALL histdef2d(iff,o_SWupSFCclr%flag,o_SWupSFCclr%name, "SWup clear sky at surface", "W/m2")
    853  CALL histdef2d(iff,o_SWdnSFC%flag,o_SWdnSFC%name, "SWdn at surface", "W/m2")
    854  CALL histdef2d(iff,o_SWdnSFCclr%flag,o_SWdnSFCclr%name, "SWdn clear sky at surface", "W/m2")
    855  CALL histdef2d(iff,o_LWupSFC%flag,o_LWupSFC%name, "Upwd. IR rad. at surface", "W/m2")
    856  CALL histdef2d(iff,o_LWdnSFC%flag,o_LWdnSFC%name, "Down. IR rad. at surface", "W/m2")
    857  CALL histdef2d(iff,o_LWupSFCclr%flag,o_LWupSFCclr%name, "CS Upwd. IR rad. at surface", "W/m2")
    858  CALL histdef2d(iff,o_LWdnSFCclr%flag,o_LWdnSFCclr%name, "Down. CS IR rad. at surface", "W/m2")
    859  CALL histdef2d(iff,o_bils%flag,o_bils%name, "Surf. total heat flux", "W/m2")
    860  CALL histdef2d(iff,o_sens%flag,o_sens%name, "Sensible heat flux", "W/m2")
    861  CALL histdef2d(iff,o_fder%flag,o_fder%name, "Heat flux derivation", "W/m2")
    862  CALL histdef2d(iff,o_ffonte%flag,o_ffonte%name, "Thermal flux for snow melting", "W/m2")
    863  CALL histdef2d(iff,o_fqcalving%flag,o_fqcalving%name, "Ice Calving", "kg/m2/s")
    864  CALL histdef2d(iff,o_fqfonte%flag,o_fqfonte%name, "Land ice melt", "kg/m2/s")
    865 
    866  CALL histdef2d(iff,o_taux%flag,o_taux%name, "Zonal wind stress","Pa")
    867  CALL histdef2d(iff,o_tauy%flag,o_tauy%name, "Meridional wind stress","Pa")
     922 CALL histdef2d(iff,clef_stations(iff),o_ndayrain%flag,o_ndayrain%name, "Number of dayrain(liq+sol)", "-")
     923 CALL histdef2d(iff,clef_stations(iff),o_precip%flag,o_precip%name, "Precip Totale liq+sol", "kg/(s*m2)" )
     924 CALL histdef2d(iff,clef_stations(iff),o_plul%flag,o_plul%name, "Large-scale Precip.", "kg/(s*m2)")
     925 CALL histdef2d(iff,clef_stations(iff),o_pluc%flag,o_pluc%name, "Convective Precip.", "kg/(s*m2)")
     926 CALL histdef2d(iff,clef_stations(iff),o_snow%flag,o_snow%name, "Snow fall", "kg/(s*m2)" )
     927 CALL histdef2d(iff,clef_stations(iff),o_msnow%flag,o_msnow%name, "Surface snow amount", "kg/m2" )
     928 CALL histdef2d(iff,clef_stations(iff),o_fsnow%flag,o_fsnow%name, "Surface snow area fraction", "-" )
     929 CALL histdef2d(iff,clef_stations(iff),o_evap%flag,o_evap%name, "Evaporat", "kg/(s*m2)" )
     930 CALL histdef2d(iff,clef_stations(iff),o_tops%flag,o_tops%name, "Solar rad. at TOA", "W/m2")
     931 CALL histdef2d(iff,clef_stations(iff),o_tops0%flag,o_tops0%name, "CS Solar rad. at TOA", "W/m2")
     932 CALL histdef2d(iff,clef_stations(iff),o_topl%flag,o_topl%name, "IR rad. at TOA", "W/m2" )
     933 CALL histdef2d(iff,clef_stations(iff),o_topl0%flag,o_topl0%name, "IR rad. at TOA", "W/m2")
     934 CALL histdef2d(iff,clef_stations(iff),o_SWupTOA%flag,o_SWupTOA%name, "SWup at TOA", "W/m2")
     935 CALL histdef2d(iff,clef_stations(iff),o_SWupTOAclr%flag,o_SWupTOAclr%name, "SWup clear sky at TOA", "W/m2")
     936 CALL histdef2d(iff,clef_stations(iff),o_SWdnTOA%flag,o_SWdnTOA%name, "SWdn at TOA", "W/m2" )
     937 CALL histdef2d(iff,clef_stations(iff),o_SWdnTOAclr%flag,o_SWdnTOAclr%name, "SWdn clear sky at TOA", "W/m2")
     938 CALL histdef2d(iff,clef_stations(iff),o_nettop%flag,o_nettop%name, "Net dn radiatif flux at TOA", "W/m2")
     939 CALL histdef2d(iff,clef_stations(iff),o_SWup200%flag,o_SWup200%name, "SWup at 200mb", "W/m2" )
     940 CALL histdef2d(iff,clef_stations(iff),o_SWup200clr%flag,o_SWup200clr%name, "SWup clear sky at 200mb", "W/m2")
     941 CALL histdef2d(iff,clef_stations(iff),o_SWdn200%flag,o_SWdn200%name, "SWdn at 200mb", "W/m2" )
     942 CALL histdef2d(iff,clef_stations(iff),o_SWdn200clr%flag,o_SWdn200clr%name, "SWdn clear sky at 200mb", "W/m2")
     943 CALL histdef2d(iff,clef_stations(iff),o_LWup200%flag,o_LWup200%name, "LWup at 200mb", "W/m2")
     944 CALL histdef2d(iff,clef_stations(iff),o_LWup200clr%flag,o_LWup200clr%name, "LWup clear sky at 200mb", "W/m2")
     945 CALL histdef2d(iff,clef_stations(iff),o_LWdn200%flag,o_LWdn200%name, "LWdn at 200mb", "W/m2")
     946 CALL histdef2d(iff,clef_stations(iff),o_LWdn200clr%flag,o_LWdn200clr%name, "LWdn clear sky at 200mb", "W/m2")
     947 CALL histdef2d(iff,clef_stations(iff),o_sols%flag,o_sols%name, "Solar rad. at surf.", "W/m2")
     948 CALL histdef2d(iff,clef_stations(iff),o_sols0%flag,o_sols0%name, "Solar rad. at surf.", "W/m2")
     949 CALL histdef2d(iff,clef_stations(iff),o_soll%flag,o_soll%name, "IR rad. at surface", "W/m2") 
     950 CALL histdef2d(iff,clef_stations(iff),o_radsol%flag,o_radsol%name, "Rayonnement au sol", "W/m2")
     951 CALL histdef2d(iff,clef_stations(iff),o_soll0%flag,o_soll0%name, "IR rad. at surface", "W/m2")
     952 CALL histdef2d(iff,clef_stations(iff),o_SWupSFC%flag,o_SWupSFC%name, "SWup at surface", "W/m2")
     953 CALL histdef2d(iff,clef_stations(iff),o_SWupSFCclr%flag,o_SWupSFCclr%name, "SWup clear sky at surface", "W/m2")
     954 CALL histdef2d(iff,clef_stations(iff),o_SWdnSFC%flag,o_SWdnSFC%name, "SWdn at surface", "W/m2")
     955 CALL histdef2d(iff,clef_stations(iff),o_SWdnSFCclr%flag,o_SWdnSFCclr%name, "SWdn clear sky at surface", "W/m2")
     956 CALL histdef2d(iff,clef_stations(iff),o_LWupSFC%flag,o_LWupSFC%name, "Upwd. IR rad. at surface", "W/m2")
     957 CALL histdef2d(iff,clef_stations(iff),o_LWdnSFC%flag,o_LWdnSFC%name, "Down. IR rad. at surface", "W/m2")
     958 CALL histdef2d(iff,clef_stations(iff),o_LWupSFCclr%flag,o_LWupSFCclr%name, "CS Upwd. IR rad. at surface", "W/m2")
     959 CALL histdef2d(iff,clef_stations(iff),o_LWdnSFCclr%flag,o_LWdnSFCclr%name, "Down. CS IR rad. at surface", "W/m2")
     960 CALL histdef2d(iff,clef_stations(iff),o_bils%flag,o_bils%name, "Surf. total heat flux", "W/m2")
     961 CALL histdef2d(iff,clef_stations(iff),o_sens%flag,o_sens%name, "Sensible heat flux", "W/m2")
     962 CALL histdef2d(iff,clef_stations(iff),o_fder%flag,o_fder%name, "Heat flux derivation", "W/m2")
     963 CALL histdef2d(iff,clef_stations(iff),o_ffonte%flag,o_ffonte%name, "Thermal flux for snow melting", "W/m2")
     964 CALL histdef2d(iff,clef_stations(iff),o_fqcalving%flag,o_fqcalving%name, "Ice Calving", "kg/m2/s")
     965 CALL histdef2d(iff,clef_stations(iff),o_fqfonte%flag,o_fqfonte%name, "Land ice melt", "kg/m2/s")
     966
     967 CALL histdef2d(iff,clef_stations(iff),o_taux%flag,o_taux%name, "Zonal wind stress","Pa")
     968 CALL histdef2d(iff,clef_stations(iff),o_tauy%flag,o_tauy%name, "Meridional wind stress","Pa")
    868969
    869970     DO nsrf = 1, nbsrf
    870  CALL histdef2d(iff,o_pourc_srf(nsrf)%flag,o_pourc_srf(nsrf)%name,"% "//clnsurf(nsrf),"%")
    871  CALL histdef2d(iff,o_fract_srf(nsrf)%flag,o_fract_srf(nsrf)%name,"Fraction "//clnsurf(nsrf),"1")
    872  CALL histdef2d(iff,o_taux_srf(nsrf)%flag,o_taux_srf(nsrf)%name,"Zonal wind stress"//clnsurf(nsrf),"Pa")
    873  CALL histdef2d(iff,o_tauy_srf(nsrf)%flag,o_tauy_srf(nsrf)%name,"Meridional wind stress "//clnsurf(nsrf),"Pa")
    874  CALL histdef2d(iff,o_tsol_srf(nsrf)%flag,o_tsol_srf(nsrf)%name,"Temperature "//clnsurf(nsrf),"K")
    875  CALL histdef2d(iff,o_u10m_srf(nsrf)%flag,o_u10m_srf(nsrf)%name,"Vent Zonal 10m "//clnsurf(nsrf),"m/s")
    876  CALL histdef2d(iff,o_evap_srf(nsrf)%flag,o_evap_srf(nsrf)%name,"evaporation at surface "//clnsurf(nsrf),"kg/(s*m2)")
    877  CALL histdef2d(iff,o_v10m_srf(nsrf)%flag,o_v10m_srf(nsrf)%name,"Vent meredien 10m "//clnsurf(nsrf),"m/s")
    878  CALL histdef2d(iff,o_t2m_srf(nsrf)%flag,o_t2m_srf(nsrf)%name,"Temp 2m "//clnsurf(nsrf),"K")
    879  CALL histdef2d(iff,o_sens_srf(nsrf)%flag,o_sens_srf(nsrf)%name,"Sensible heat flux "//clnsurf(nsrf),"W/m2")
    880  CALL histdef2d(iff,o_lat_srf(nsrf)%flag,o_lat_srf(nsrf)%name,"Latent heat flux "//clnsurf(nsrf),"W/m2")
    881  CALL histdef2d(iff,o_flw_srf(nsrf)%flag,o_flw_srf(nsrf)%name,"LW "//clnsurf(nsrf),"W/m2")
    882  CALL histdef2d(iff,o_fsw_srf(nsrf)%flag,o_fsw_srf(nsrf)%name,"SW "//clnsurf(nsrf),"W/m2")
    883  CALL histdef2d(iff,o_wbils_srf(nsrf)%flag,o_wbils_srf(nsrf)%name,"Bilan sol "//clnsurf(nsrf),"W/m2" )
    884  CALL histdef2d(iff,o_wbilo_srf(nsrf)%flag,o_wbilo_srf(nsrf)%name,"Bilan eau "//clnsurf(nsrf),"kg/(m2*s)")
     971 CALL histdef2d(iff,clef_stations(iff),o_pourc_srf(nsrf)%flag,o_pourc_srf(nsrf)%name,"% "//clnsurf(nsrf),"%")
     972 CALL histdef2d(iff,clef_stations(iff),o_fract_srf(nsrf)%flag,o_fract_srf(nsrf)%name,"Fraction "//clnsurf(nsrf),"1")
     973 CALL histdef2d(iff,clef_stations(iff), &
     974o_taux_srf(nsrf)%flag,o_taux_srf(nsrf)%name,"Zonal wind stress"//clnsurf(nsrf),"Pa")
     975 CALL histdef2d(iff,clef_stations(iff), &
     976o_tauy_srf(nsrf)%flag,o_tauy_srf(nsrf)%name,"Meridional wind stress "//clnsurf(nsrf),"Pa")
     977 CALL histdef2d(iff,clef_stations(iff), &
     978o_tsol_srf(nsrf)%flag,o_tsol_srf(nsrf)%name,"Temperature "//clnsurf(nsrf),"K")
     979 CALL histdef2d(iff,clef_stations(iff), &
     980o_u10m_srf(nsrf)%flag,o_u10m_srf(nsrf)%name,"Vent Zonal 10m "//clnsurf(nsrf),"m/s")
     981 CALL histdef2d(iff,clef_stations(iff), &
     982o_evap_srf(nsrf)%flag,o_evap_srf(nsrf)%name,"evaporation at surface "//clnsurf(nsrf),"kg/(s*m2)")
     983 CALL histdef2d(iff,clef_stations(iff), &
     984o_v10m_srf(nsrf)%flag,o_v10m_srf(nsrf)%name,"Vent meredien 10m "//clnsurf(nsrf),"m/s")
     985 CALL histdef2d(iff,clef_stations(iff), &
     986o_t2m_srf(nsrf)%flag,o_t2m_srf(nsrf)%name,"Temp 2m "//clnsurf(nsrf),"K")
     987 CALL histdef2d(iff,clef_stations(iff), &
     988o_sens_srf(nsrf)%flag,o_sens_srf(nsrf)%name,"Sensible heat flux "//clnsurf(nsrf),"W/m2")
     989 CALL histdef2d(iff,clef_stations(iff), &
     990o_lat_srf(nsrf)%flag,o_lat_srf(nsrf)%name,"Latent heat flux "//clnsurf(nsrf),"W/m2")
     991 CALL histdef2d(iff,clef_stations(iff), &
     992o_flw_srf(nsrf)%flag,o_flw_srf(nsrf)%name,"LW "//clnsurf(nsrf),"W/m2")
     993 CALL histdef2d(iff,clef_stations(iff), &
     994o_fsw_srf(nsrf)%flag,o_fsw_srf(nsrf)%name,"SW "//clnsurf(nsrf),"W/m2")
     995 CALL histdef2d(iff,clef_stations(iff), &
     996o_wbils_srf(nsrf)%flag,o_wbils_srf(nsrf)%name,"Bilan sol "//clnsurf(nsrf),"W/m2" )
     997 CALL histdef2d(iff,clef_stations(iff), &
     998o_wbilo_srf(nsrf)%flag,o_wbilo_srf(nsrf)%name,"Bilan eau "//clnsurf(nsrf),"kg/(m2*s)")
    885999  if (iflag_pbl>1 .and. lev_files(iff).gt.10 ) then
    886  CALL histdef2d(iff,o_tke_srf(nsrf)%flag,o_tke_srf(nsrf)%name,"Max Turb. Kinetic Energy "//clnsurf(nsrf),"-")
     1000 CALL histdef2d(iff,clef_stations(iff), &
     1001o_tke_srf(nsrf)%flag,o_tke_srf(nsrf)%name,"Max Turb. Kinetic Energy "//clnsurf(nsrf),"-")
     1002
     1003  IF (.NOT.clef_stations(iff)) THEN
     1004!
     1005!IM: there is no way to have one single value in a netcdf file
     1006!
    8871007   type_ecri(1) = 't_max(X)'
    8881008   type_ecri(2) = 't_max(X)'
     
    8901010   type_ecri(4) = 't_max(X)'
    8911011   type_ecri(5) = 't_max(X)'
    892  CALL histdef2d(iff,o_tke_max_srf(nsrf)%flag,o_tke_max_srf(nsrf)%name,"Max Turb. Kinetic Energy "//clnsurf(nsrf),"-")
     1012   type_ecri(6) = 't_max(X)'
     1013  CALL histdef2d(iff,clef_stations(iff), &
     1014  o_tke_max_srf(nsrf)%flag,o_tke_max_srf(nsrf)%name,"Max Turb. Kinetic Energy "//clnsurf(nsrf),"-")
    8931015   type_ecri(:) = type_ecri_files(:)
     1016  ENDIF
     1017
    8941018  endif
    895  CALL histdef2d(iff,o_albe_srf(nsrf)%flag,o_albe_srf(nsrf)%name,"Albedo VIS surf. "//clnsurf(nsrf),"-")
    896  CALL histdef2d(iff,o_rugs_srf(nsrf)%flag,o_rugs_srf(nsrf)%name,"Surface roughness "//clnsurf(nsrf),"m")
    897  CALL histdef2d(iff,o_ages_srf(nsrf)%flag,o_ages_srf(nsrf)%name,"Snow age", "day")
     1019
     1020 CALL histdef2d(iff,clef_stations(iff), &
     1021o_albe_srf(nsrf)%flag,o_albe_srf(nsrf)%name,"Albedo VIS surf. "//clnsurf(nsrf),"-")
     1022 CALL histdef2d(iff,clef_stations(iff), &
     1023o_rugs_srf(nsrf)%flag,o_rugs_srf(nsrf)%name,"Surface roughness "//clnsurf(nsrf),"m")
     1024 CALL histdef2d(iff,clef_stations(iff), &
     1025o_ages_srf(nsrf)%flag,o_ages_srf(nsrf)%name,"Snow age", "day")
    8981026END DO
    8991027
     
    9011029 IF (ok_ade.OR.ok_aie) THEN
    9021030
    903   CALL histdef2d(iff,o_od550aer%flag,o_od550aer%name, "Total aerosol optical depth at 550nm", "-")
    904   CALL histdef2d(iff,o_od865aer%flag,o_od865aer%name, "Total aerosol optical depth at 870nm", "-")
    905   CALL histdef2d(iff,o_absvisaer%flag,o_absvisaer%name, "Absorption aerosol visible optical depth", "-")
    906   CALL histdef2d(iff,o_od550lt1aer%flag,o_od550lt1aer%name, "Fine mode optical depth", "-")
    907 
    908 
    909   CALL histdef2d(iff,o_sconcso4%flag,o_sconcso4%name,"Surface Concentration of Sulfate ","kg/m3")
    910   CALL histdef2d(iff,o_sconcoa%flag,o_sconcoa%name,"Surface Concentration of Organic Aerosol ","kg/m3")
    911   CALL histdef2d(iff,o_sconcbc%flag,o_sconcbc%name,"Surface Concentration of Black Carbon ","kg/m3")
    912   CALL histdef2d(iff,o_sconcss%flag,o_sconcss%name,"Surface Concentration of Sea Salt ","kg/m3")
    913   CALL histdef2d(iff,o_sconcdust%flag,o_sconcdust%name,"Surface Concentration of Dust ","kg/m3")
    914   CALL histdef3d(iff,o_concso4%flag,o_concso4%name,"Concentration of Sulfate ","kg/m3")
    915   CALL histdef3d(iff,o_concoa%flag,o_concoa%name,"Concentration of Organic Aerosol ","kg/m3")
    916   CALL histdef3d(iff,o_concbc%flag,o_concbc%name,"Concentration of Black Carbon ","kg/m3")
    917   CALL histdef3d(iff,o_concss%flag,o_concss%name,"Concentration of Sea Salt ","kg/m3")
    918   CALL histdef3d(iff,o_concdust%flag,o_concdust%name,"Concentration of Dust ","kg/m3")
    919   CALL histdef2d(iff,o_loadso4%flag,o_loadso4%name,"Column Load of Sulfate ","kg/m2")
    920   CALL histdef2d(iff,o_loadoa%flag,o_loadoa%name,"Column Load of Organic Aerosol ","kg/m2")
    921   CALL histdef2d(iff,o_loadbc%flag,o_loadbc%name,"Column Load of Black Carbon ","kg/m2")
    922   CALL histdef2d(iff,o_loadss%flag,o_loadss%name,"Column Load of Sea Salt ","kg/m2")
    923   CALL histdef2d(iff,o_loaddust%flag,o_loaddust%name,"Column Load of Dust ","kg/m2")
     1031  CALL histdef2d(iff,clef_stations(iff), &
     1032o_od550aer%flag,o_od550aer%name, "Total aerosol optical depth at 550nm", "-")
     1033  CALL histdef2d(iff,clef_stations(iff), &
     1034o_od865aer%flag,o_od865aer%name, "Total aerosol optical depth at 870nm", "-")
     1035  CALL histdef2d(iff,clef_stations(iff), &
     1036o_absvisaer%flag,o_absvisaer%name, "Absorption aerosol visible optical depth", "-")
     1037  CALL histdef2d(iff,clef_stations(iff), &
     1038o_od550lt1aer%flag,o_od550lt1aer%name, "Fine mode optical depth", "-")
     1039
     1040
     1041  CALL histdef2d(iff,clef_stations(iff), &
     1042o_sconcso4%flag,o_sconcso4%name,"Surface Concentration of Sulfate ","kg/m3")
     1043  CALL histdef2d(iff,clef_stations(iff), &
     1044o_sconcoa%flag,o_sconcoa%name,"Surface Concentration of Organic Aerosol ","kg/m3")
     1045  CALL histdef2d(iff,clef_stations(iff), &
     1046o_sconcbc%flag,o_sconcbc%name,"Surface Concentration of Black Carbon ","kg/m3")
     1047  CALL histdef2d(iff,clef_stations(iff), &
     1048o_sconcss%flag,o_sconcss%name,"Surface Concentration of Sea Salt ","kg/m3")
     1049  CALL histdef2d(iff,clef_stations(iff), &
     1050o_sconcdust%flag,o_sconcdust%name,"Surface Concentration of Dust ","kg/m3")
     1051  CALL histdef3d(iff,clef_stations(iff), &
     1052o_concso4%flag,o_concso4%name,"Concentration of Sulfate ","kg/m3")
     1053  CALL histdef3d(iff,clef_stations(iff), &
     1054o_concoa%flag,o_concoa%name,"Concentration of Organic Aerosol ","kg/m3")
     1055  CALL histdef3d(iff,clef_stations(iff), &
     1056o_concbc%flag,o_concbc%name,"Concentration of Black Carbon ","kg/m3")
     1057  CALL histdef3d(iff,clef_stations(iff), &
     1058o_concss%flag,o_concss%name,"Concentration of Sea Salt ","kg/m3")
     1059  CALL histdef3d(iff,clef_stations(iff), &
     1060o_concdust%flag,o_concdust%name,"Concentration of Dust ","kg/m3")
     1061  CALL histdef2d(iff,clef_stations(iff), &
     1062o_loadso4%flag,o_loadso4%name,"Column Load of Sulfate ","kg/m2")
     1063  CALL histdef2d(iff,clef_stations(iff), &
     1064o_loadoa%flag,o_loadoa%name,"Column Load of Organic Aerosol ","kg/m2")
     1065  CALL histdef2d(iff,clef_stations(iff), &
     1066o_loadbc%flag,o_loadbc%name,"Column Load of Black Carbon ","kg/m2")
     1067  CALL histdef2d(iff,clef_stations(iff), &
     1068o_loadss%flag,o_loadss%name,"Column Load of Sea Salt ","kg/m2")
     1069  CALL histdef2d(iff,clef_stations(iff), &
     1070o_loaddust%flag,o_loaddust%name,"Column Load of Dust ","kg/m2")
    9241071
    9251072  DO naero = 1, naero_spc
    926   CALL histdef2d(iff,o_tausumaero(naero)%flag,o_tausumaero(naero)%name,"Aerosol Optical depth at 550 nm "//name_aero(naero),"1")
     1073  CALL histdef2d(iff,clef_stations(iff), &
     1074o_tausumaero(naero)%flag,o_tausumaero(naero)%name,"Aerosol Optical depth at 550 nm "//name_aero(naero),"1")
    9271075  END DO
    9281076 ENDIF
     
    9301078
    9311079 IF (ok_ade) THEN
    932   CALL histdef2d(iff,o_topswad%flag,o_topswad%name, "ADE at TOA", "W/m2")
    933   CALL histdef2d(iff,o_solswad%flag,o_solswad%name, "ADE at SRF", "W/m2")
    934 
    935  CALL histdef2d(iff,o_swtoaas_nat%flag,o_swtoaas_nat%name, "Natural aerosol radiative forcing all-sky at TOA", "W/m2")
    936  CALL histdef2d(iff,o_swsrfas_nat%flag,o_swsrfas_nat%name, "Natural aerosol radiative forcing all-sky at SRF", "W/m2")
    937  CALL histdef2d(iff,o_swtoacs_nat%flag,o_swtoacs_nat%name, "Natural aerosol radiative forcing clear-sky at TOA", "W/m2")
    938  CALL histdef2d(iff,o_swsrfcs_nat%flag,o_swsrfcs_nat%name, "Natural aerosol radiative forcing clear-sky at SRF", "W/m2")
    939 
    940  CALL histdef2d(iff,o_swtoaas_ant%flag,o_swtoaas_ant%name, "Anthropogenic aerosol radiative forcing all-sky at TOA", "W/m2")
    941  CALL histdef2d(iff,o_swsrfas_ant%flag,o_swsrfas_ant%name, "Anthropogenic aerosol radiative forcing all-sky at SRF", "W/m2")
    942  CALL histdef2d(iff,o_swtoacs_ant%flag,o_swtoacs_ant%name, "Anthropogenic aerosol radiative forcing clear-sky at TOA", "W/m2")
    943  CALL histdef2d(iff,o_swsrfcs_ant%flag,o_swsrfcs_ant%name, "Anthropogenic aerosol radiative forcing clear-sky at SRF", "W/m2")
     1080  CALL histdef2d(iff,clef_stations(iff), &
     1081o_topswad%flag,o_topswad%name, "ADE at TOA", "W/m2")
     1082  CALL histdef2d(iff,clef_stations(iff), &
     1083o_solswad%flag,o_solswad%name, "ADE at SRF", "W/m2")
     1084
     1085 CALL histdef2d(iff,clef_stations(iff), &
     1086o_swtoaas_nat%flag,o_swtoaas_nat%name, "Natural aerosol radiative forcing all-sky at TOA", "W/m2")
     1087 CALL histdef2d(iff,clef_stations(iff), &
     1088o_swsrfas_nat%flag,o_swsrfas_nat%name, "Natural aerosol radiative forcing all-sky at SRF", "W/m2")
     1089 CALL histdef2d(iff,clef_stations(iff), &
     1090o_swtoacs_nat%flag,o_swtoacs_nat%name, "Natural aerosol radiative forcing clear-sky at TOA", "W/m2")
     1091 CALL histdef2d(iff,clef_stations(iff), &
     1092o_swsrfcs_nat%flag,o_swsrfcs_nat%name, "Natural aerosol radiative forcing clear-sky at SRF", "W/m2")
     1093
     1094 CALL histdef2d(iff,clef_stations(iff), &
     1095o_swtoaas_ant%flag,o_swtoaas_ant%name, "Anthropogenic aerosol radiative forcing all-sky at TOA", "W/m2")
     1096 CALL histdef2d(iff,clef_stations(iff), &
     1097o_swsrfas_ant%flag,o_swsrfas_ant%name, "Anthropogenic aerosol radiative forcing all-sky at SRF", "W/m2")
     1098 CALL histdef2d(iff,clef_stations(iff), &
     1099o_swtoacs_ant%flag,o_swtoacs_ant%name, "Anthropogenic aerosol radiative forcing clear-sky at TOA", "W/m2")
     1100 CALL histdef2d(iff,clef_stations(iff), &
     1101o_swsrfcs_ant%flag,o_swsrfcs_ant%name, "Anthropogenic aerosol radiative forcing clear-sky at SRF", "W/m2")
    9441102
    9451103 IF (.NOT. aerosol_couple) THEN
    946  CALL histdef2d(iff,o_swtoacf_nat%flag,o_swtoacf_nat%name, "Natural aerosol impact on cloud radiative forcing at TOA", "W/m2")
    947  CALL histdef2d(iff,o_swsrfcf_nat%flag,o_swsrfcf_nat%name, "Natural aerosol impact on cloud radiative forcing  at SRF", "W/m2")
    948  CALL histdef2d(iff,o_swtoacf_ant%flag,o_swtoacf_ant%name, "Anthropogenic aerosol impact on cloud radiative forcing at TOA", "W/m2")
    949  CALL histdef2d(iff,o_swsrfcf_ant%flag,o_swsrfcf_ant%name, "Anthropogenic aerosol impact on cloud radiative forcing at SRF", "W/m2")
    950  CALL histdef2d(iff,o_swtoacf_zero%flag,o_swtoacf_zero%name, "Cloud radiative forcing (allsky-clearsky fluxes) at TOA", "W/m2")
    951  CALL histdef2d(iff,o_swsrfcf_zero%flag,o_swsrfcf_zero%name, "Cloud radiative forcing (allsky-clearsky fluxes) at SRF", "W/m2")
     1104 CALL histdef2d(iff,clef_stations(iff), &
     1105o_swtoacf_nat%flag,o_swtoacf_nat%name, "Natural aerosol impact on cloud radiative forcing at TOA", "W/m2")
     1106 CALL histdef2d(iff,clef_stations(iff), &
     1107o_swsrfcf_nat%flag,o_swsrfcf_nat%name, "Natural aerosol impact on cloud radiative forcing  at SRF", "W/m2")
     1108 CALL histdef2d(iff,clef_stations(iff), &
     1109o_swtoacf_ant%flag,o_swtoacf_ant%name, "Anthropogenic aerosol impact on cloud radiative forcing at TOA", "W/m2")
     1110 CALL histdef2d(iff,clef_stations(iff), &
     1111o_swsrfcf_ant%flag,o_swsrfcf_ant%name, "Anthropogenic aerosol impact on cloud radiative forcing at SRF", "W/m2")
     1112 CALL histdef2d(iff,clef_stations(iff), &
     1113o_swtoacf_zero%flag,o_swtoacf_zero%name, "Cloud radiative forcing (allsky-clearsky fluxes) at TOA", "W/m2")
     1114 CALL histdef2d(iff,clef_stations(iff), &
     1115o_swsrfcf_zero%flag,o_swsrfcf_zero%name, "Cloud radiative forcing (allsky-clearsky fluxes) at SRF", "W/m2")
    9521116 ENDIF
    9531117
     
    9551119
    9561120 IF (ok_aie) THEN
    957   CALL histdef2d(iff,o_topswai%flag,o_topswai%name, "AIE at TOA", "W/m2")
    958   CALL histdef2d(iff,o_solswai%flag,o_solswai%name, "AIE at SFR", "W/m2")
     1121  CALL histdef2d(iff,clef_stations(iff), &
     1122o_topswai%flag,o_topswai%name, "AIE at TOA", "W/m2")
     1123  CALL histdef2d(iff,clef_stations(iff), &
     1124o_solswai%flag,o_solswai%name, "AIE at SFR", "W/m2")
    9591125!Cloud droplet number concentration
    960   CALL histdef3d(iff,o_scdnc%flag,o_scdnc%name, "Cloud droplet number concentration","m-3")
    961   CALL histdef2d(iff,o_cldncl%flag,o_cldncl%name, "CDNC at top of liquid water cloud", "m-3")
    962   CALL histdef3d(iff,o_reffclws%flag,o_reffclws%name, "Stratiform Cloud Droplet Effective Radius","m")
    963   CALL histdef3d(iff,o_reffclwc%flag,o_reffclwc%name, "Convective Cloud Droplet Effective Radius","m")
    964   CALL histdef2d(iff,o_cldnvi%flag,o_cldnvi%name, "Column Integrated Cloud Droplet Number", "m-2")
    965   CALL histdef3d(iff,o_lcc3d%flag,o_lcc3d%name, "Cloud liquid fraction","1")
    966   CALL histdef3d(iff,o_lcc3dcon%flag,o_lcc3dcon%name, "Convective cloud liquid fraction","1")
    967   CALL histdef3d(iff,o_lcc3dstra%flag,o_lcc3dstra%name, "Stratiform cloud liquid fraction","1")
    968   CALL histdef2d(iff,o_lcc%flag,o_lcc%name, "Cloud liquid fraction at top of cloud","1")
    969   CALL histdef2d(iff,o_reffclwtop%flag,o_reffclwtop%name, "Droplet effective radius at top of liquid water cloud", "m")
     1126  CALL histdef3d(iff,clef_stations(iff), &
     1127o_scdnc%flag,o_scdnc%name, "Cloud droplet number concentration","m-3")
     1128  CALL histdef2d(iff,clef_stations(iff), &
     1129o_cldncl%flag,o_cldncl%name, "CDNC at top of liquid water cloud", "m-3")
     1130  CALL histdef3d(iff,clef_stations(iff), &
     1131o_reffclws%flag,o_reffclws%name, "Stratiform Cloud Droplet Effective Radius (aerosol diags.)","m")
     1132  CALL histdef3d(iff,clef_stations(iff), &
     1133o_reffclwc%flag,o_reffclwc%name, "Convective Cloud Droplet Effective Radius (aerosol diags.)","m")
     1134  CALL histdef2d(iff,clef_stations(iff), &
     1135o_cldnvi%flag,o_cldnvi%name, "Column Integrated Cloud Droplet Number", "m-2")
     1136  CALL histdef3d(iff,clef_stations(iff), &
     1137o_lcc3d%flag,o_lcc3d%name, "Cloud liquid fraction","1")
     1138  CALL histdef3d(iff,clef_stations(iff), &
     1139o_lcc3dcon%flag,o_lcc3dcon%name, "Convective cloud liquid fraction","1")
     1140  CALL histdef3d(iff,clef_stations(iff), &
     1141o_lcc3dstra%flag,o_lcc3dstra%name, "Stratiform cloud liquid fraction","1")
     1142  CALL histdef2d(iff,clef_stations(iff), &
     1143o_lcc%flag,o_lcc%name, "Cloud liquid fraction at top of cloud","1")
     1144  CALL histdef2d(iff,clef_stations(iff), &
     1145o_reffclwtop%flag,o_reffclwtop%name, "Droplet effective radius at top of liquid water cloud", "m")
    9701146 ENDIF
    9711147
    9721148
    973  CALL histdef2d(iff,o_alb1%flag,o_alb1%name, "Surface VIS albedo", "-")
    974  CALL histdef2d(iff,o_alb2%flag,o_alb2%name, "Surface Near IR albedo", "-")
    975  CALL histdef2d(iff,o_cdrm%flag,o_cdrm%name, "Momentum drag coef.", "-")
    976  CALL histdef2d(iff,o_cdrh%flag,o_cdrh%name, "Heat drag coef.", "-" )
    977  CALL histdef2d(iff,o_cldl%flag,o_cldl%name, "Low-level cloudiness", "-")
    978  CALL histdef2d(iff,o_cldm%flag,o_cldm%name, "Mid-level cloudiness", "-")
    979  CALL histdef2d(iff,o_cldh%flag,o_cldh%name, "High-level cloudiness", "-")
    980  CALL histdef2d(iff,o_cldt%flag,o_cldt%name, "Total cloudiness", "-")
    981  CALL histdef2d(iff,o_cldq%flag,o_cldq%name, "Cloud liquid water path", "kg/m2")
    982  CALL histdef2d(iff,o_lwp%flag,o_lwp%name, "Cloud water path", "kg/m2")
    983  CALL histdef2d(iff,o_iwp%flag,o_iwp%name, "Cloud ice water path", "kg/m2" )
    984  CALL histdef2d(iff,o_ue%flag,o_ue%name, "Zonal energy transport", "-")
    985  CALL histdef2d(iff,o_ve%flag,o_ve%name, "Merid energy transport", "-")
    986  CALL histdef2d(iff,o_uq%flag,o_uq%name, "Zonal humidity transport", "-")
    987  CALL histdef2d(iff,o_vq%flag,o_vq%name, "Merid humidity transport", "-")
     1149 CALL histdef2d(iff,clef_stations(iff), &
     1150o_alb1%flag,o_alb1%name, "Surface VIS albedo", "-")
     1151 CALL histdef2d(iff,clef_stations(iff), &
     1152o_alb2%flag,o_alb2%name, "Surface Near IR albedo", "-")
     1153 CALL histdef2d(iff,clef_stations(iff), &
     1154o_cdrm%flag,o_cdrm%name, "Momentum drag coef.", "-")
     1155 CALL histdef2d(iff,clef_stations(iff), &
     1156o_cdrh%flag,o_cdrh%name, "Heat drag coef.", "-" )
     1157 CALL histdef2d(iff,clef_stations(iff), &
     1158o_cldl%flag,o_cldl%name, "Low-level cloudiness", "-")
     1159 CALL histdef2d(iff,clef_stations(iff), &
     1160o_cldm%flag,o_cldm%name, "Mid-level cloudiness", "-")
     1161 CALL histdef2d(iff,clef_stations(iff), &
     1162o_cldh%flag,o_cldh%name, "High-level cloudiness", "-")
     1163 CALL histdef2d(iff,clef_stations(iff), &
     1164o_cldt%flag,o_cldt%name, "Total cloudiness", "-")
     1165 CALL histdef2d(iff,clef_stations(iff), &
     1166o_cldq%flag,o_cldq%name, "Cloud liquid water path", "kg/m2")
     1167 CALL histdef2d(iff,clef_stations(iff), &
     1168o_lwp%flag,o_lwp%name, "Cloud water path", "kg/m2")
     1169 CALL histdef2d(iff,clef_stations(iff), &
     1170o_iwp%flag,o_iwp%name, "Cloud ice water path", "kg/m2" )
     1171 CALL histdef2d(iff,clef_stations(iff), &
     1172o_ue%flag,o_ue%name, "Zonal energy transport", "-")
     1173 CALL histdef2d(iff,clef_stations(iff), &
     1174o_ve%flag,o_ve%name, "Merid energy transport", "-")
     1175 CALL histdef2d(iff,clef_stations(iff), &
     1176o_uq%flag,o_uq%name, "Zonal humidity transport", "-")
     1177 CALL histdef2d(iff,clef_stations(iff), &
     1178o_vq%flag,o_vq%name, "Merid humidity transport", "-")
    9881179
    9891180     IF(iflag_con.GE.3) THEN ! sb
    990  CALL histdef2d(iff,o_cape%flag,o_cape%name, "Conv avlbl pot ener", "J/kg")
    991  CALL histdef2d(iff,o_pbase%flag,o_pbase%name, "Cld base pressure", "Pa")
    992  CALL histdef2d(iff,o_ptop%flag,o_ptop%name, "Cld top pressure", "Pa")
    993  CALL histdef2d(iff,o_fbase%flag,o_fbase%name, "Cld base mass flux", "kg/m2/s")
    994  CALL histdef2d(iff,o_prw%flag,o_prw%name, "Precipitable water", "kg/m2")
     1181 CALL histdef2d(iff,clef_stations(iff), &
     1182o_cape%flag,o_cape%name, "Conv avlbl pot ener", "J/kg")
     1183 CALL histdef2d(iff,clef_stations(iff), &
     1184o_pbase%flag,o_pbase%name, "Cld base pressure", "Pa")
     1185 CALL histdef2d(iff,clef_stations(iff), &
     1186o_ptop%flag,o_ptop%name, "Cld top pressure", "Pa")
     1187 CALL histdef2d(iff,clef_stations(iff), &
     1188o_fbase%flag,o_fbase%name, "Cld base mass flux", "kg/m2/s")
     1189 CALL histdef2d(iff,clef_stations(iff), &
     1190o_prw%flag,o_prw%name, "Precipitable water", "kg/m2")
     1191  IF (.NOT.clef_stations(iff)) THEN
     1192!
     1193!IM: there is no way to have one single value in a netcdf file
     1194!
     1195    type_ecri(1) = 't_max(X)'
     1196    type_ecri(2) = 't_max(X)'
     1197    type_ecri(3) = 't_max(X)'
     1198    type_ecri(4) = 't_max(X)'
     1199    type_ecri(5) = 't_max(X)'
     1200    type_ecri(6) = 't_max(X)'
     1201    CALL histdef2d(iff,clef_stations(iff), &
     1202  o_cape_max%flag,o_cape_max%name, "CAPE max.", "J/kg")
     1203  ENDIF
     1204   type_ecri(:) = type_ecri_files(:)
     1205 CALL histdef3d(iff,clef_stations(iff), &
     1206o_upwd%flag,o_upwd%name, "saturated updraft", "kg/m2/s")
     1207 CALL histdef3d(iff,clef_stations(iff), &
     1208o_Ma%flag,o_Ma%name, "undilute adiab updraft", "kg/m2/s")
     1209 CALL histdef3d(iff,clef_stations(iff), &
     1210o_dnwd%flag,o_dnwd%name, "saturated downdraft", "kg/m2/s")
     1211 CALL histdef3d(iff,clef_stations(iff), &
     1212o_dnwd0%flag,o_dnwd0%name, "unsat. downdraft", "kg/m2/s")
     1213 CALL histdef3d(iff,clef_stations(iff), &
     1214o_mc%flag,o_mc%name, "Convective mass flux", "kg/m2/s")
     1215   type_ecri(1) = 'inst(X)'
     1216   type_ecri(2) = 'inst(X)'
     1217   type_ecri(3) = 'inst(X)'
     1218   type_ecri(4) = 'inst(X)'
     1219   type_ecri(5) = 'inst(X)'
     1220   type_ecri(6) = 'inst(X)'
     1221 CALL histdef2d(iff,clef_stations(iff), &
     1222o_ftime_con%flag,o_ftime_con%name, "Fraction of time convection Occurs", " ")
     1223   type_ecri(:) = type_ecri_files(:)
     1224     ENDIF !iflag_con .GE. 3
     1225
     1226 CALL histdef2d(iff,clef_stations(iff), &
     1227o_s_pblh%flag,o_s_pblh%name, "Boundary Layer Height", "m")
     1228 CALL histdef2d(iff,clef_stations(iff), &
     1229o_s_pblt%flag,o_s_pblt%name, "t at Boundary Layer Height", "K")
     1230 CALL histdef2d(iff,clef_stations(iff), &
     1231o_s_lcl%flag,o_s_lcl%name, "Condensation level", "m")
     1232 CALL histdef2d(iff,clef_stations(iff), &
     1233o_s_therm%flag,o_s_therm%name, "Exces du thermique", "K")
     1234!IM : Les champs suivants (s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F
     1235!CALL histdef2d(iff,clef_stations(iff), &
     1236!o_s_capCL%flag,o_s_capCL%name, "Conv avlbl pot enerfor ABL", "J/m2" )
     1237!CALL histdef2d(iff,clef_stations(iff), &
     1238!o_s_oliqCL%flag,o_s_oliqCL%name, "Liq Water in BL", "kg/m2")
     1239!CALL histdef2d(iff,clef_stations(iff), &
     1240!o_s_cteiCL%flag,o_s_cteiCL%name, "Instability criteria(ABL)", "K")
     1241!CALL histdef2d(iff,clef_stations(iff), &
     1242!o_s_trmb1%flag,o_s_trmb1%name, "deep_cape(HBTM2)", "J/m2")
     1243!CALL histdef2d(iff,clef_stations(iff), &
     1244!o_s_trmb2%flag,o_s_trmb2%name, "inhibition (HBTM2)", "J/m2")
     1245!CALL histdef2d(iff,clef_stations(iff), &
     1246!o_s_trmb3%flag,o_s_trmb3%name, "Point Omega (HBTM2)", "m")
     1247
     1248! Champs interpolles sur des niveaux de pression
     1249
     1250   type_ecri(1) = 'inst(X)'
     1251   type_ecri(2) = 'inst(X)'
     1252   type_ecri(3) = 'inst(X)'
     1253   type_ecri(4) = 'inst(X)'
     1254   type_ecri(5) = 'inst(X)'
     1255   type_ecri(6) = 'inst(X)'
     1256
     1257! Attention a reverifier
     1258
     1259        ilev=0       
     1260        DO k=1, nlevSTD
     1261     bb2=clevSTD(k)
     1262     IF(bb2.EQ."850".OR.bb2.EQ."700".OR.bb2.EQ."500".OR.bb2.EQ."200" &
     1263.OR.bb2.EQ."100".OR.bb2.EQ."50".OR.bb2.EQ."10")THEN
     1264      ilev=ilev+1
     1265!     print*,'ilev k bb2 flag name ',ilev,k, bb2,o_uSTDlevs(ilev)%flag,o_uSTDlevs(ilev)%name
     1266 CALL histdef2d(iff,clef_stations(iff), &
     1267o_uSTDlevs(ilev)%flag,o_uSTDlevs(ilev)%name,"Zonal wind "//bb2//"hPa", "m/s")
     1268 CALL histdef2d(iff,clef_stations(iff), &
     1269o_vSTDlevs(ilev)%flag,o_vSTDlevs(ilev)%name,"Meridional wind "//bb2//"hPa", "m/s")
     1270 CALL histdef2d(iff,clef_stations(iff), &
     1271o_wSTDlevs(ilev)%flag,o_wSTDlevs(ilev)%name,"Vertical wind "//bb2//"hPa", "Pa/s")
     1272 CALL histdef2d(iff,clef_stations(iff), &
     1273o_zSTDlevs(ilev)%flag,o_zSTDlevs(ilev)%name,"Geopotential height "//bb2//"hPa", "m")
     1274 CALL histdef2d(iff,clef_stations(iff), &
     1275o_qSTDlevs(ilev)%flag,o_qSTDlevs(ilev)%name,"Specific humidity "//bb2//"hPa", "kg/kg" )
     1276 CALL histdef2d(iff,clef_stations(iff), &
     1277o_tSTDlevs(ilev)%flag,o_tSTDlevs(ilev)%name,"Temperature "//bb2//"hPa", "K")
     1278     ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR."500".OR.bb2.EQ."200".OR.bb2.EQ."50".OR.bb2.EQ."10")
     1279       ENDDO
     1280   type_ecri(:) = type_ecri_files(:)
     1281
     1282 CALL histdef2d(iff,clef_stations(iff), &
     1283o_t_oce_sic%flag,o_t_oce_sic%name, "Temp mixte oce-sic", "K")
     1284
     1285 IF (type_ocean=='slab') &
     1286     CALL histdef2d(iff,clef_stations(iff), &
     1287o_slab_bils%flag, o_slab_bils%name,"Bilan au sol sur ocean slab", "W/m2")
     1288
     1289! Couplage conv-CL
     1290 IF (iflag_con.GE.3) THEN
     1291    IF (iflag_coupl.EQ.1) THEN
     1292 CALL histdef2d(iff,clef_stations(iff), &
     1293o_ale_bl%flag,o_ale_bl%name, "ALE BL", "m2/s2")
     1294 CALL histdef2d(iff,clef_stations(iff), &
     1295o_alp_bl%flag,o_alp_bl%name, "ALP BL", "m2/s2")
     1296    ENDIF
     1297 ENDIF !(iflag_con.GE.3)
     1298
     1299 CALL histdef2d(iff,clef_stations(iff), &
     1300o_weakinv%flag,o_weakinv%name, "Weak inversion", "-")
     1301 CALL histdef2d(iff,clef_stations(iff), &
     1302o_dthmin%flag,o_dthmin%name, "dTheta mini", "K/m")
     1303 CALL histdef2d(iff,clef_stations(iff), &
     1304o_rh2m%flag,o_rh2m%name, "Relative humidity at 2m", "%" )
     1305
     1306  IF (.NOT.clef_stations(iff)) THEN
     1307!
     1308!IM: there is no way to have one single value in a netcdf file
     1309!
     1310   type_ecri(1) = 't_min(X)'
     1311   type_ecri(2) = 't_min(X)'
     1312   type_ecri(3) = 't_min(X)'
     1313   type_ecri(4) = 't_min(X)'
     1314   type_ecri(5) = 't_min(X)'
     1315   type_ecri(6) = 't_min(X)'
     1316   CALL histdef2d(iff,clef_stations(iff),o_rh2m_min%flag,o_rh2m_min%name, "Min Relative humidity at 2m", "%" )
    9951317   type_ecri(1) = 't_max(X)'
    9961318   type_ecri(2) = 't_max(X)'
     
    9981320   type_ecri(4) = 't_max(X)'
    9991321   type_ecri(5) = 't_max(X)'
    1000  CALL histdef2d(iff,o_cape_max%flag,o_cape_max%name, "CAPE max.", "J/kg")
     1322   type_ecri(6) = 't_max(X)'
     1323   CALL histdef2d(iff,clef_stations(iff),o_rh2m_max%flag,o_rh2m_max%name, "Max Relative humidity at 2m", "%" )
     1324  ENDIF 
     1325
    10011326   type_ecri(:) = type_ecri_files(:)
    1002  CALL histdef3d(iff,o_upwd%flag,o_upwd%name, "saturated updraft", "kg/m2/s")
    1003  CALL histdef3d(iff,o_Ma%flag,o_Ma%name, "undilute adiab updraft", "kg/m2/s")
    1004  CALL histdef3d(iff,o_dnwd%flag,o_dnwd%name, "saturated downdraft", "kg/m2/s")
    1005  CALL histdef3d(iff,o_dnwd0%flag,o_dnwd0%name, "unsat. downdraft", "kg/m2/s")
    1006  CALL histdef3d(iff,o_mc%flag,o_mc%name, "Convective mass flux", "kg/m2/s")
    1007    type_ecri(1) = 'inst(X)'
    1008    type_ecri(2) = 'inst(X)'
    1009    type_ecri(3) = 'inst(X)'
    1010    type_ecri(4) = 'inst(X)'
    1011    type_ecri(5) = 'inst(X)'
    1012  CALL histdef2d(iff,o_ftime_con%flag,o_ftime_con%name, "Fraction of time convection Occurs", " ")
    1013    type_ecri(:) = type_ecri_files(:)
    1014      ENDIF !iflag_con .GE. 3
    1015 
    1016  CALL histdef2d(iff,o_s_pblh%flag,o_s_pblh%name, "Boundary Layer Height", "m")
    1017  CALL histdef2d(iff,o_s_pblt%flag,o_s_pblt%name, "t at Boundary Layer Height", "K")
    1018  CALL histdef2d(iff,o_s_lcl%flag,o_s_lcl%name, "Condensation level", "m")
    1019  CALL histdef2d(iff,o_s_therm%flag,o_s_therm%name, "Exces du thermique", "K")
    1020 !IM : Les champs suivants (s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F
    1021 !CALL histdef2d(iff,o_s_capCL%flag,o_s_capCL%name, "Conv avlbl pot enerfor ABL", "J/m2" )
    1022 !CALL histdef2d(iff,o_s_oliqCL%flag,o_s_oliqCL%name, "Liq Water in BL", "kg/m2")
    1023 !CALL histdef2d(iff,o_s_cteiCL%flag,o_s_cteiCL%name, "Instability criteria(ABL)", "K")
    1024 !CALL histdef2d(iff,o_s_trmb1%flag,o_s_trmb1%name, "deep_cape(HBTM2)", "J/m2")
    1025 !CALL histdef2d(iff,o_s_trmb2%flag,o_s_trmb2%name, "inhibition (HBTM2)", "J/m2")
    1026 !CALL histdef2d(iff,o_s_trmb3%flag,o_s_trmb3%name, "Point Omega (HBTM2)", "m")
    1027 
    1028 ! Champs interpolles sur des niveaux de pression
    1029 
    1030    type_ecri(1) = 'inst(X)'
    1031    type_ecri(2) = 'inst(X)'
    1032    type_ecri(3) = 'inst(X)'
    1033    type_ecri(4) = 'inst(X)'
    1034    type_ecri(5) = 'inst(X)'
    1035 
    1036 ! Attention a reverifier
    1037 
    1038         ilev=0       
    1039         DO k=1, nlevSTD
    1040 !     IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)
    1041      bb2=clevSTD(k)
    1042      IF(bb2.EQ."850".OR.bb2.EQ."700".OR.bb2.EQ."500".OR.bb2.EQ."200".OR.bb2.EQ."50".OR.bb2.EQ."10")THEN
    1043       ilev=ilev+1
    1044       print*,'ilev k bb2 flag name ',ilev,k, bb2,o_uSTDlevs(ilev)%flag,o_uSTDlevs(ilev)%name
    1045  CALL histdef2d(iff,o_uSTDlevs(ilev)%flag,o_uSTDlevs(ilev)%name,"Zonal wind "//bb2//"hPa", "m/s")
    1046  CALL histdef2d(iff,o_vSTDlevs(ilev)%flag,o_vSTDlevs(ilev)%name,"Meridional wind "//bb2//"hPa", "m/s")
    1047  CALL histdef2d(iff,o_wSTDlevs(ilev)%flag,o_wSTDlevs(ilev)%name,"Vertical wind "//bb2//"hPa", "Pa/s")
    1048  CALL histdef2d(iff,o_zSTDlevs(ilev)%flag,o_zSTDlevs(ilev)%name,"Geopotential height "//bb2//"hPa", "m")
    1049  CALL histdef2d(iff,o_qSTDlevs(ilev)%flag,o_qSTDlevs(ilev)%name,"Specific humidity "//bb2//"hPa", "kg/kg" )
    1050  CALL histdef2d(iff,o_tSTDlevs(ilev)%flag,o_tSTDlevs(ilev)%name,"Temperature "//bb2//"hPa", "K")
    1051      ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR."500".OR.bb2.EQ."200".OR.bb2.EQ."50".OR.bb2.EQ."10")
    1052        ENDDO
    1053    type_ecri(:) = type_ecri_files(:)
    1054 
    1055  CALL histdef2d(iff,o_t_oce_sic%flag,o_t_oce_sic%name, "Temp mixte oce-sic", "K")
    1056 
    1057  IF (type_ocean=='slab') &
    1058      CALL histdef2d(iff,o_slab_bils%flag, o_slab_bils%name,"Bilan au sol sur ocean slab", "W/m2")
    1059 
    1060 ! Couplage conv-CL
    1061  IF (iflag_con.GE.3) THEN
    1062     IF (iflag_coupl.EQ.1) THEN
    1063  CALL histdef2d(iff,o_ale_bl%flag,o_ale_bl%name, "ALE BL", "m2/s2")
    1064  CALL histdef2d(iff,o_alp_bl%flag,o_alp_bl%name, "ALP BL", "m2/s2")
    1065     ENDIF
    1066  ENDIF !(iflag_con.GE.3)
    1067 
    1068  CALL histdef2d(iff,o_weakinv%flag,o_weakinv%name, "Weak inversion", "-")
    1069  CALL histdef2d(iff,o_dthmin%flag,o_dthmin%name, "dTheta mini", "K/m")
    1070  CALL histdef2d(iff,o_rh2m%flag,o_rh2m%name, "Relative humidity at 2m", "%" )
    1071    type_ecri(1) = 't_min(X)'
    1072    type_ecri(2) = 't_min(X)'
    1073    type_ecri(3) = 't_min(X)'
    1074    type_ecri(4) = 't_min(X)'
    1075    type_ecri(5) = 't_min(X)'
    1076  CALL histdef2d(iff,o_rh2m_min%flag,o_rh2m_min%name, "Min Relative humidity at 2m", "%" )
     1327 CALL histdef2d(iff,clef_stations(iff),o_qsat2m%flag,o_qsat2m%name, "Saturant humidity at 2m", "%")
     1328 CALL histdef2d(iff,clef_stations(iff),o_tpot%flag,o_tpot%name, "Surface air potential temperature", "K")
     1329 CALL histdef2d(iff,clef_stations(iff), &
     1330o_tpote%flag,o_tpote%name, "Surface air equivalent potential temperature", "K")
     1331 CALL histdef2d(iff,clef_stations(iff),o_SWnetOR%flag,o_SWnetOR%name, "Sfce net SW radiation OR", "W/m2")
     1332 CALL histdef2d(iff,clef_stations(iff),o_SWdownOR%flag,o_SWdownOR%name, "Sfce incident SW radiation OR", "W/m2")
     1333 CALL histdef2d(iff,clef_stations(iff),o_LWdownOR%flag,o_LWdownOR%name, "Sfce incident LW radiation OR", "W/m2")
     1334 CALL histdef2d(iff,clef_stations(iff),o_snowl%flag,o_snowl%name, "Solid Large-scale Precip.", "kg/(m2*s)")
     1335
     1336 CALL histdef2d(iff,clef_stations(iff),o_solldown%flag,o_solldown%name, "Down. IR rad. at surface", "W/m2")
     1337 CALL histdef2d(iff,clef_stations(iff),o_dtsvdfo%flag,o_dtsvdfo%name, "Boundary-layer dTs(o)", "K/s")
     1338 CALL histdef2d(iff,clef_stations(iff),o_dtsvdft%flag,o_dtsvdft%name, "Boundary-layer dTs(t)", "K/s")
     1339 CALL histdef2d(iff,clef_stations(iff),o_dtsvdfg%flag,o_dtsvdfg%name, "Boundary-layer dTs(g)", "K/s")
     1340 CALL histdef2d(iff,clef_stations(iff),o_dtsvdfi%flag,o_dtsvdfi%name, "Boundary-layer dTs(g)", "K/s")
     1341 CALL histdef2d(iff,clef_stations(iff),o_rugs%flag,o_rugs%name, "rugosity", "-" )
     1342
     1343! Champs 3D:
     1344 CALL histdef3d(iff,clef_stations(iff),o_ec550aer%flag,o_ec550aer%name, "Extinction at 550nm", "m^-1")
     1345 CALL histdef3d(iff,clef_stations(iff),o_lwcon%flag,o_lwcon%name, "Cloud liquid water content", "kg/kg")
     1346 CALL histdef3d(iff,clef_stations(iff),o_iwcon%flag,o_iwcon%name, "Cloud ice water content", "kg/kg")
     1347 CALL histdef3d(iff,clef_stations(iff),o_temp%flag,o_temp%name, "Air temperature", "K" )
     1348 CALL histdef3d(iff,clef_stations(iff),o_theta%flag,o_theta%name, "Potential air temperature", "K" )
     1349 CALL histdef3d(iff,clef_stations(iff),o_ovap%flag,o_ovap%name, "Specific humidity", "kg/kg" )
     1350 CALL histdef3d(iff,clef_stations(iff), &
     1351o_ovapinit%flag,o_ovapinit%name, "Specific humidity (begin of timestep)", "kg/kg" )
     1352 CALL histdef3d(iff,clef_stations(iff), &
     1353o_geop%flag,o_geop%name, "Geopotential height", "m2/s2")
     1354 CALL histdef3d(iff,clef_stations(iff), &
     1355o_vitu%flag,o_vitu%name, "Zonal wind", "m/s" )
     1356 CALL histdef3d(iff,clef_stations(iff), &
     1357o_vitv%flag,o_vitv%name, "Meridional wind", "m/s" )
     1358 CALL histdef3d(iff,clef_stations(iff), &
     1359o_vitw%flag,o_vitw%name, "Vertical wind", "Pa/s" )
     1360 CALL histdef3d(iff,clef_stations(iff), &
     1361o_pres%flag,o_pres%name, "Air pressure", "Pa" )
     1362 CALL histdef3d(iff,clef_stations(iff), &
     1363o_paprs%flag,o_paprs%name, "Air pressure Inter-Couches", "Pa" )
     1364 CALL histdef3d(iff,clef_stations(iff), &
     1365o_zfull%flag,o_zfull%name, "Altitude of full pressure levels", "m" )
     1366 CALL histdef3d(iff,clef_stations(iff), &
     1367o_zhalf%flag,o_zhalf%name, "Altitude of half pressure levels", "m" )
     1368 CALL histdef3d(iff,clef_stations(iff), &
     1369o_rneb%flag,o_rneb%name, "Cloud fraction", "-")
     1370 CALL histdef3d(iff,clef_stations(iff), &
     1371o_rnebcon%flag,o_rnebcon%name, "Convective Cloud Fraction", "-")
     1372 CALL histdef3d(iff,clef_stations(iff), &
     1373o_rhum%flag,o_rhum%name, "Relative humidity", "-")
     1374 CALL histdef3d(iff,clef_stations(iff), &
     1375o_ozone%flag,o_ozone%name, "Ozone mole fraction", "-")
     1376 if (read_climoz == 2) &
     1377      CALL histdef3d(iff,clef_stations(iff), &
     1378o_ozone_light%flag,o_ozone_light%name, &
     1379      "Daylight ozone mole fraction", "-")
     1380 CALL histdef3d(iff,clef_stations(iff), &
     1381o_dtphy%flag,o_dtphy%name, "Physics dT", "K/s")
     1382 CALL histdef3d(iff,clef_stations(iff), &
     1383o_dqphy%flag,o_dqphy%name, "Physics dQ", "(kg/kg)/s")
     1384 CALL histdef3d(iff,clef_stations(iff), &
     1385o_cldtau%flag,o_cldtau%name, "Cloud optical thickness", "1")
     1386 CALL histdef3d(iff,clef_stations(iff), &
     1387o_cldemi%flag,o_cldemi%name, "Cloud optical emissivity", "1")
     1388!IM: bug ?? dimensionnement variables (klon,klev+1) pmflxr, pmflxs, prfl, psfl
     1389 CALL histdef3d(iff,clef_stations(iff), &
     1390o_pr_con_l%flag,o_pr_con_l%name, "Convective precipitation lic", " ")
     1391 CALL histdef3d(iff,clef_stations(iff), &
     1392o_pr_con_i%flag,o_pr_con_i%name, "Convective precipitation ice", " ")
     1393 CALL histdef3d(iff,clef_stations(iff), &
     1394o_pr_lsc_l%flag,o_pr_lsc_l%name, "Large scale precipitation lic", " ")
     1395 CALL histdef3d(iff,clef_stations(iff), &
     1396o_pr_lsc_i%flag,o_pr_lsc_i%name, "Large scale precipitation ice", " ")
     1397!Cloud droplet effective radius
     1398 CALL histdef3d(iff,clef_stations(iff), &
     1399o_re%flag,o_re%name, "Cloud droplet effective radius","um")
     1400 CALL histdef3d(iff,clef_stations(iff), &
     1401o_fl%flag,o_fl%name, "Denominator of Cloud droplet effective radius"," ")
     1402!FH Sorties pour la couche limite
     1403     if (iflag_pbl>1) then
     1404 CALL histdef3d(iff,clef_stations(iff), &
     1405o_tke%flag,o_tke%name, "TKE", "m2/s2")
     1406  IF (.NOT.clef_stations(iff)) THEN
     1407!
     1408!IM: there is no way to have one single value in a netcdf file
     1409!
    10771410   type_ecri(1) = 't_max(X)'
    10781411   type_ecri(2) = 't_max(X)'
     
    10801413   type_ecri(4) = 't_max(X)'
    10811414   type_ecri(5) = 't_max(X)'
    1082  CALL histdef2d(iff,o_rh2m_max%flag,o_rh2m_max%name, "Max Relative humidity at 2m", "%" )
     1415   type_ecri(6) = 't_max(X)'
     1416   CALL histdef3d(iff,clef_stations(iff), &
     1417  o_tke_max%flag,o_tke_max%name, "TKE max", "m2/s2")
     1418  ENDIF
    10831419   type_ecri(:) = type_ecri_files(:)
    1084  CALL histdef2d(iff,o_qsat2m%flag,o_qsat2m%name, "Saturant humidity at 2m", "%")
    1085  CALL histdef2d(iff,o_tpot%flag,o_tpot%name, "Surface air potential temperature", "K")
    1086  CALL histdef2d(iff,o_tpote%flag,o_tpote%name, "Surface air equivalent potential temperature", "K")
    1087  CALL histdef2d(iff,o_SWnetOR%flag,o_SWnetOR%name, "Sfce net SW radiation OR", "W/m2")
    1088  CALL histdef2d(iff,o_SWdownOR%flag,o_SWdownOR%name, "Sfce incident SW radiation OR", "W/m2")
    1089  CALL histdef2d(iff,o_LWdownOR%flag,o_LWdownOR%name, "Sfce incident LW radiation OR", "W/m2")
    1090  CALL histdef2d(iff,o_snowl%flag,o_snowl%name, "Solid Large-scale Precip.", "kg/(m2*s)")
    1091 
    1092  CALL histdef2d(iff,o_solldown%flag,o_solldown%name, "Down. IR rad. at surface", "W/m2")
    1093  CALL histdef2d(iff,o_dtsvdfo%flag,o_dtsvdfo%name, "Boundary-layer dTs(o)", "K/s")
    1094  CALL histdef2d(iff,o_dtsvdft%flag,o_dtsvdft%name, "Boundary-layer dTs(t)", "K/s")
    1095  CALL histdef2d(iff,o_dtsvdfg%flag,o_dtsvdfg%name, "Boundary-layer dTs(g)", "K/s")
    1096  CALL histdef2d(iff,o_dtsvdfi%flag,o_dtsvdfi%name, "Boundary-layer dTs(g)", "K/s")
    1097  CALL histdef2d(iff,o_rugs%flag,o_rugs%name, "rugosity", "-" )
    1098 
    1099 ! Champs 3D:
    1100  CALL histdef3d(iff,o_ec550aer%flag,o_ec550aer%name, "Extinction at 550nm", "m^-1")
    1101  CALL histdef3d(iff,o_lwcon%flag,o_lwcon%name, "Cloud liquid water content", "kg/kg")
    1102  CALL histdef3d(iff,o_iwcon%flag,o_iwcon%name, "Cloud ice water content", "kg/kg")
    1103  CALL histdef3d(iff,o_temp%flag,o_temp%name, "Air temperature", "K" )
    1104  CALL histdef3d(iff,o_theta%flag,o_theta%name, "Potential air temperature", "K" )
    1105  CALL histdef3d(iff,o_ovap%flag,o_ovap%name, "Specific humidity", "kg/kg" )
    1106  CALL histdef3d(iff,o_ovapinit%flag,o_ovapinit%name, "Specific humidity (begin of timestep)", "kg/kg" )
    1107  CALL histdef3d(iff,o_geop%flag,o_geop%name, "Geopotential height", "m2/s2")
    1108  CALL histdef3d(iff,o_vitu%flag,o_vitu%name, "Zonal wind", "m/s" )
    1109  CALL histdef3d(iff,o_vitv%flag,o_vitv%name, "Meridional wind", "m/s" )
    1110  CALL histdef3d(iff,o_vitw%flag,o_vitw%name, "Vertical wind", "Pa/s" )
    1111  CALL histdef3d(iff,o_pres%flag,o_pres%name, "Air pressure", "Pa" )
    1112  CALL histdef3d(iff,o_paprs%flag,o_paprs%name, "Air pressure Inter-Couches", "Pa" )
    1113  CALL histdef3d(iff,o_rneb%flag,o_rneb%name, "Cloud fraction", "-")
    1114  CALL histdef3d(iff,o_rnebcon%flag,o_rnebcon%name, "Convective Cloud Fraction", "-")
    1115  CALL histdef3d(iff,o_rhum%flag,o_rhum%name, "Relative humidity", "-")
    1116  CALL histdef3d(iff,o_ozone%flag,o_ozone%name, "Ozone mole fraction", "-")
    1117  if (read_climoz == 2) &
    1118       CALL histdef3d(iff,o_ozone_light%flag,o_ozone_light%name, &
    1119       "Daylight ozone mole fraction", "-")
    1120  CALL histdef3d(iff,o_dtphy%flag,o_dtphy%name, "Physics dT", "K/s")
    1121  CALL histdef3d(iff,o_dqphy%flag,o_dqphy%name, "Physics dQ", "(kg/kg)/s")
    1122  CALL histdef3d(iff,o_cldtau%flag,o_cldtau%name, "Cloud optical thickness", "1")
    1123  CALL histdef3d(iff,o_cldemi%flag,o_cldemi%name, "Cloud optical emissivity", "1")
    1124 !IM: bug ?? dimensionnement variables (klon,klev+1) pmflxr, pmflxs, prfl, psfl
    1125  CALL histdef3d(iff,o_pr_con_l%flag,o_pr_con_l%name, "Convective precipitation lic", " ")
    1126  CALL histdef3d(iff,o_pr_con_i%flag,o_pr_con_i%name, "Convective precipitation ice", " ")
    1127  CALL histdef3d(iff,o_pr_lsc_l%flag,o_pr_lsc_l%name, "Large scale precipitation lic", " ")
    1128  CALL histdef3d(iff,o_pr_lsc_i%flag,o_pr_lsc_i%name, "Large scale precipitation ice", " ")
    1129 !Cloud droplet effective radius
    1130  CALL histdef3d(iff,o_re%flag,o_re%name, "Cloud droplet effective radius","um")
    1131  CALL histdef3d(iff,o_fl%flag,o_fl%name, "Denominator of Cloud droplet effective radius"," ")
    1132 !FH Sorties pour la couche limite
    1133      if (iflag_pbl>1) then
    1134  CALL histdef3d(iff,o_tke%flag,o_tke%name, "TKE", "m2/s2")
     1420     endif
     1421
     1422 CALL histdef3d(iff,clef_stations(iff), &
     1423o_kz%flag,o_kz%name, "Kz melange", "m2/s")
     1424  IF (.NOT.clef_stations(iff)) THEN
     1425!
     1426!IM: there is no way to have one single value in a netcdf file
     1427!
    11351428   type_ecri(1) = 't_max(X)'
    11361429   type_ecri(2) = 't_max(X)'
     
    11381431   type_ecri(4) = 't_max(X)'
    11391432   type_ecri(5) = 't_max(X)'
    1140  CALL histdef3d(iff,o_tke_max%flag,o_tke_max%name, "TKE max", "m2/s2")
     1433   type_ecri(6) = 't_max(X)'
     1434   CALL histdef3d(iff,clef_stations(iff), &
     1435   o_kz_max%flag,o_kz_max%name, "Kz melange max", "m2/s" )
     1436  ENDIF
    11411437   type_ecri(:) = type_ecri_files(:)
    1142      endif
    1143 
    1144  CALL histdef3d(iff,o_kz%flag,o_kz%name, "Kz melange", "m2/s")
    1145    type_ecri(1) = 't_max(X)'
    1146    type_ecri(2) = 't_max(X)'
    1147    type_ecri(3) = 't_max(X)'
    1148    type_ecri(4) = 't_max(X)'
    1149    type_ecri(5) = 't_max(X)'
    1150  CALL histdef3d(iff,o_kz_max%flag,o_kz_max%name, "Kz melange max", "m2/s" )
    1151    type_ecri(:) = type_ecri_files(:)
    1152  CALL histdef3d(iff,o_clwcon%flag,o_clwcon%name, "Convective Cloud Liquid water content", "kg/kg")
    1153  CALL histdef3d(iff,o_dtdyn%flag,o_dtdyn%name, "Dynamics dT", "K/s")
    1154  CALL histdef3d(iff,o_dqdyn%flag,o_dqdyn%name, "Dynamics dQ", "(kg/kg)/s")
    1155  CALL histdef3d(iff,o_dudyn%flag,o_dudyn%name, "Dynamics dU", "m/s2")
    1156  CALL histdef3d(iff,o_dvdyn%flag,o_dvdyn%name, "Dynamics dV", "m/s2")
    1157  CALL histdef3d(iff,o_dtcon%flag,o_dtcon%name, "Convection dT", "K/s")
    1158  CALL histdef3d(iff,o_ducon%flag,o_ducon%name, "Convection du", "m/s2")
    1159  CALL histdef3d(iff,o_dqcon%flag,o_dqcon%name, "Convection dQ", "(kg/kg)/s")
     1438 CALL histdef3d(iff,clef_stations(iff), &
     1439o_clwcon%flag,o_clwcon%name, "Convective Cloud Liquid water content", "kg/kg")
     1440 CALL histdef3d(iff,clef_stations(iff), &
     1441o_dtdyn%flag,o_dtdyn%name, "Dynamics dT", "K/s")
     1442 CALL histdef3d(iff,clef_stations(iff), &
     1443o_dqdyn%flag,o_dqdyn%name, "Dynamics dQ", "(kg/kg)/s")
     1444 CALL histdef3d(iff,clef_stations(iff), &
     1445o_dudyn%flag,o_dudyn%name, "Dynamics dU", "m/s2")
     1446 CALL histdef3d(iff,clef_stations(iff), &
     1447o_dvdyn%flag,o_dvdyn%name, "Dynamics dV", "m/s2")
     1448 CALL histdef3d(iff,clef_stations(iff), &
     1449o_dtcon%flag,o_dtcon%name, "Convection dT", "K/s")
     1450 CALL histdef3d(iff,clef_stations(iff), &
     1451o_ducon%flag,o_ducon%name, "Convection du", "m/s2")
     1452 CALL histdef3d(iff,clef_stations(iff), &
     1453o_dqcon%flag,o_dqcon%name, "Convection dQ", "(kg/kg)/s")
    11601454
    11611455! Wakes
    11621456 IF(iflag_con.EQ.3) THEN
    11631457 IF (iflag_wake == 1) THEN
    1164    CALL histdef2d(iff,o_ale_wk%flag,o_ale_wk%name, "ALE WK", "m2/s2")
    1165    CALL histdef2d(iff,o_alp_wk%flag,o_alp_wk%name, "ALP WK", "m2/s2")
    1166    CALL histdef2d(iff,o_ale%flag,o_ale%name, "ALE", "m2/s2")
    1167    CALL histdef2d(iff,o_alp%flag,o_alp%name, "ALP", "W/m2")
    1168    CALL histdef2d(iff,o_cin%flag,o_cin%name, "Convective INhibition", "m2/s2")
    1169    CALL histdef2d(iff,o_wape%flag,o_WAPE%name, "WAPE", "m2/s2")
    1170    CALL histdef2d(iff,o_wake_h%flag,o_wake_h%name, "wake_h", "-")
    1171    CALL histdef2d(iff,o_wake_s%flag,o_wake_s%name, "wake_s", "-")
    1172    CALL histdef3d(iff,o_dtwak%flag,o_dtwak%name, "Wake dT", "K/s")
    1173    CALL histdef3d(iff,o_dqwak%flag,o_dqwak%name, "Wake dQ", "(kg/kg)/s")
    1174    CALL histdef3d(iff,o_wake_deltat%flag,o_wake_deltat%name, "wake_deltat", " ")
    1175    CALL histdef3d(iff,o_wake_deltaq%flag,o_wake_deltaq%name, "wake_deltaq", " ")
    1176    CALL histdef3d(iff,o_wake_omg%flag,o_wake_omg%name, "wake_omg", " ")
     1458   CALL histdef2d(iff,clef_stations(iff), &
     1459o_ale_wk%flag,o_ale_wk%name, "ALE WK", "m2/s2")
     1460   CALL histdef2d(iff,clef_stations(iff), &
     1461o_alp_wk%flag,o_alp_wk%name, "ALP WK", "m2/s2")
     1462   CALL histdef2d(iff,clef_stations(iff), &
     1463o_ale%flag,o_ale%name, "ALE", "m2/s2")
     1464   CALL histdef2d(iff,clef_stations(iff), &
     1465o_alp%flag,o_alp%name, "ALP", "W/m2")
     1466   CALL histdef2d(iff,clef_stations(iff),o_cin%flag,o_cin%name, "Convective INhibition", "m2/s2")
     1467   CALL histdef2d(iff,clef_stations(iff),o_wape%flag,o_WAPE%name, "WAPE", "m2/s2")
     1468   CALL histdef2d(iff,clef_stations(iff),o_wake_h%flag,o_wake_h%name, "wake_h", "-")
     1469   CALL histdef2d(iff,clef_stations(iff),o_wake_s%flag,o_wake_s%name, "wake_s", "-")
     1470   CALL histdef3d(iff,clef_stations(iff),o_dtwak%flag,o_dtwak%name, "Wake dT", "K/s")
     1471   CALL histdef3d(iff,clef_stations(iff),o_dqwak%flag,o_dqwak%name, "Wake dQ", "(kg/kg)/s")
     1472   CALL histdef3d(iff,clef_stations(iff),o_wake_deltat%flag,o_wake_deltat%name, "wake_deltat", " ")
     1473   CALL histdef3d(iff,clef_stations(iff),o_wake_deltaq%flag,o_wake_deltaq%name, "wake_deltaq", " ")
     1474   CALL histdef3d(iff,clef_stations(iff),o_wake_omg%flag,o_wake_omg%name, "wake_omg", " ")
    11771475 ENDIF
    1178    CALL histdef3d(iff,o_Vprecip%flag,o_Vprecip%name, "precipitation vertical profile", "-")
    1179    CALL histdef3d(iff,o_ftd%flag,o_ftd%name, "tend temp due aux descentes precip", "-")
    1180    CALL histdef3d(iff,o_fqd%flag,o_fqd%name,"tend vap eau due aux descentes precip", "-")
     1476   CALL histdef3d(iff,clef_stations(iff),o_Vprecip%flag,o_Vprecip%name, "precipitation vertical profile", "-")
     1477   CALL histdef3d(iff,clef_stations(iff),o_ftd%flag,o_ftd%name, "tend temp due aux descentes precip", "-")
     1478   CALL histdef3d(iff,clef_stations(iff),o_fqd%flag,o_fqd%name,"tend vap eau due aux descentes precip", "-")
    11811479 ENDIF !(iflag_con.EQ.3)
    11821480
    1183  CALL histdef3d(iff,o_dtlsc%flag,o_dtlsc%name, "Condensation dT", "K/s")
    1184  CALL histdef3d(iff,o_dtlschr%flag,o_dtlschr%name,"Large-scale condensational heating rate","K/s")
    1185  CALL histdef3d(iff,o_dqlsc%flag,o_dqlsc%name, "Condensation dQ", "(kg/kg)/s")
    1186  CALL histdef3d(iff,o_dtvdf%flag,o_dtvdf%name, "Boundary-layer dT", "K/s")
    1187  CALL histdef3d(iff,o_dqvdf%flag,o_dqvdf%name, "Boundary-layer dQ", "(kg/kg)/s")
    1188  CALL histdef3d(iff,o_dteva%flag,o_dteva%name, "Reevaporation dT", "K/s")
    1189  CALL histdef3d(iff,o_dqeva%flag,o_dqeva%name, "Reevaporation dQ", "(kg/kg)/s")
    1190  CALL histdef3d(iff,o_ptconv%flag,o_ptconv%name, "POINTS CONVECTIFS", " ")
    1191  CALL histdef3d(iff,o_ratqs%flag,o_ratqs%name, "RATQS", " ")
    1192  CALL histdef3d(iff,o_dtthe%flag,o_dtthe%name, "Dry adjust. dT", "K/s")
     1481 CALL histdef3d(iff,clef_stations(iff),o_dtlsc%flag,o_dtlsc%name, "Condensation dT", "K/s")
     1482 CALL histdef3d(iff,clef_stations(iff),o_dtlschr%flag,o_dtlschr%name,"Large-scale condensational heating rate","K/s")
     1483 CALL histdef3d(iff,clef_stations(iff),o_dqlsc%flag,o_dqlsc%name, "Condensation dQ", "(kg/kg)/s")
     1484 CALL histdef3d(iff,clef_stations(iff),o_dtvdf%flag,o_dtvdf%name, "Boundary-layer dT", "K/s")
     1485 CALL histdef3d(iff,clef_stations(iff),o_dqvdf%flag,o_dqvdf%name, "Boundary-layer dQ", "(kg/kg)/s")
     1486 CALL histdef3d(iff,clef_stations(iff),o_dteva%flag,o_dteva%name, "Reevaporation dT", "K/s")
     1487 CALL histdef3d(iff,clef_stations(iff),o_dqeva%flag,o_dqeva%name, "Reevaporation dQ", "(kg/kg)/s")
     1488 CALL histdef3d(iff,clef_stations(iff),o_ptconv%flag,o_ptconv%name, "POINTS CONVECTIFS", " ")
     1489 CALL histdef3d(iff,clef_stations(iff),o_ratqs%flag,o_ratqs%name, "RATQS", " ")
     1490 CALL histdef3d(iff,clef_stations(iff),o_dtthe%flag,o_dtthe%name, "Thermal dT", "K/s")
    11931491
    11941492if(iflag_thermals.gt.1) THEN
    1195  CALL histdef3d(iff,o_f_th%flag,o_f_th%name, "Thermal plume mass flux", "K/s")
    1196  CALL histdef3d(iff,o_e_th%flag,o_e_th%name,"Thermal plume entrainment","K/s")
    1197  CALL histdef3d(iff,o_w_th%flag,o_w_th%name,"Thermal plume vertical velocity","m/s")
    1198  CALL histdef3d(iff,o_lambda_th%flag,o_lambda_th%name,"Thermal plume vertical velocity","m/s")
    1199  CALL histdef2d(iff,o_ftime_th%flag,o_ftime_th%name,"Fraction of time Shallow convection occurs"," ")
    1200  CALL histdef3d(iff,o_q_th%flag,o_q_th%name, "Thermal plume total humidity", "kg/kg")
    1201  CALL histdef3d(iff,o_a_th%flag,o_a_th%name, "Thermal plume fraction", "")
    1202  CALL histdef3d(iff,o_d_th%flag,o_d_th%name, "Thermal plume detrainment", "K/s")
    1203 !IM endif !iflag_thermals.gt.1
    1204  CALL histdef2d(iff,o_f0_th%flag,o_f0_th%name, "Thermal closure mass flux", "K/s")
    1205  CALL histdef2d(iff,o_zmax_th%flag,o_zmax_th%name, "Thermal plume height", "K/s")
    1206  CALL histdef3d(iff,o_dqthe%flag,o_dqthe%name, "Dry adjust. dQ", "(kg/kg)/s")
     1493 CALL histdef3d(iff,clef_stations(iff),o_f_th%flag,o_f_th%name, "Thermal plume mass flux", "kg/(m2*s)")
     1494 CALL histdef3d(iff,clef_stations(iff),o_e_th%flag,o_e_th%name,"Thermal plume entrainment","K/s")
     1495 CALL histdef3d(iff,clef_stations(iff),o_w_th%flag,o_w_th%name,"Thermal plume vertical velocity","m/s")
     1496 CALL histdef3d(iff,clef_stations(iff), &
     1497o_lambda_th%flag,o_lambda_th%name,"Thermal plume vertical velocity","m/s")
     1498 CALL histdef2d(iff,clef_stations(iff), &
     1499o_ftime_th%flag,o_ftime_th%name,"Fraction of time Shallow convection occurs"," ")
     1500 CALL histdef3d(iff,clef_stations(iff), &
     1501o_q_th%flag,o_q_th%name, "Thermal plume total humidity", "kg/kg")
     1502 CALL histdef3d(iff,clef_stations(iff), &
     1503o_a_th%flag,o_a_th%name, "Thermal plume fraction", "")
     1504 CALL histdef3d(iff,clef_stations(iff), &
     1505o_d_th%flag,o_d_th%name, "Thermal plume detrainment", "K/s")
     1506
     1507 CALL histdef2d(iff,clef_stations(iff), &
     1508o_f0_th%flag,o_f0_th%name, "Thermal closure mass flux", "K/s")
     1509 CALL histdef2d(iff,clef_stations(iff), &
     1510o_zmax_th%flag,o_zmax_th%name, "Thermal plume height", "K/s")
     1511 CALL histdef3d(iff,clef_stations(iff), &
     1512o_dqthe%flag,o_dqthe%name, "Thermal dQ", "(kg/kg)/s")
    12071513endif !iflag_thermals.gt.1
    1208  CALL histdef3d(iff,o_dtajs%flag,o_dtajs%name, "Dry adjust. dT", "K/s")
    1209  CALL histdef3d(iff,o_dqajs%flag,o_dqajs%name, "Dry adjust. dQ", "(kg/kg)/s")
    1210  CALL histdef3d(iff,o_dtswr%flag,o_dtswr%name, "SW radiation dT", "K/s")
    1211  CALL histdef3d(iff,o_dtsw0%flag,o_dtsw0%name, "CS SW radiation dT", "K/s")
    1212  CALL histdef3d(iff,o_dtlwr%flag,o_dtlwr%name, "LW radiation dT", "K/s")
    1213  CALL histdef3d(iff,o_dtlw0%flag,o_dtlw0%name, "CS LW radiation dT", "K/s")
    1214  CALL histdef3d(iff,o_dtec%flag,o_dtec%name, "Cinetic dissip dT", "K/s")
    1215  CALL histdef3d(iff,o_duvdf%flag,o_duvdf%name, "Boundary-layer dU", "m/s2")
    1216  CALL histdef3d(iff,o_dvvdf%flag,o_dvvdf%name, "Boundary-layer dV", "m/s2")
     1514 CALL histdef3d(iff,clef_stations(iff), &
     1515o_dtajs%flag,o_dtajs%name, "Dry adjust. dT", "K/s")
     1516 CALL histdef3d(iff,clef_stations(iff), &
     1517o_dqajs%flag,o_dqajs%name, "Dry adjust. dQ", "(kg/kg)/s")
     1518 CALL histdef3d(iff,clef_stations(iff), &
     1519o_dtswr%flag,o_dtswr%name, "SW radiation dT", "K/s")
     1520 CALL histdef3d(iff,clef_stations(iff), &
     1521o_dtsw0%flag,o_dtsw0%name, "CS SW radiation dT", "K/s")
     1522 CALL histdef3d(iff,clef_stations(iff), &
     1523o_dtlwr%flag,o_dtlwr%name, "LW radiation dT", "K/s")
     1524 CALL histdef3d(iff,clef_stations(iff), &
     1525o_dtlw0%flag,o_dtlw0%name, "CS LW radiation dT", "K/s")
     1526 CALL histdef3d(iff,clef_stations(iff), &
     1527o_dtec%flag,o_dtec%name, "Cinetic dissip dT", "K/s")
     1528 CALL histdef3d(iff,clef_stations(iff), &
     1529o_duvdf%flag,o_duvdf%name, "Boundary-layer dU", "m/s2")
     1530 CALL histdef3d(iff,clef_stations(iff), &
     1531o_dvvdf%flag,o_dvvdf%name, "Boundary-layer dV", "m/s2")
    12171532
    12181533     IF (ok_orodr) THEN
    1219  CALL histdef3d(iff,o_duoro%flag,o_duoro%name, "Orography dU", "m/s2")
    1220  CALL histdef3d(iff,o_dvoro%flag,o_dvoro%name, "Orography dV", "m/s2")
     1534 CALL histdef3d(iff,clef_stations(iff), &
     1535o_duoro%flag,o_duoro%name, "Orography dU", "m/s2")
     1536 CALL histdef3d(iff,clef_stations(iff), &
     1537o_dvoro%flag,o_dvoro%name, "Orography dV", "m/s2")
     1538 CALL histdef3d(iff,clef_stations(iff), &
     1539o_dtoro%flag,o_dtoro%name, "Orography dT", "K/s")
    12211540     ENDIF
    12221541
    12231542     IF (ok_orolf) THEN
    1224  CALL histdef3d(iff,o_dulif%flag,o_dulif%name, "Orography dU", "m/s2")
    1225  CALL histdef3d(iff,o_dvlif%flag,o_dvlif%name, "Orography dV", "m/s2")
     1543 CALL histdef3d(iff,clef_stations(iff), &
     1544o_dulif%flag,o_dulif%name, "Orography dU", "m/s2")
     1545 CALL histdef3d(iff,clef_stations(iff), &
     1546o_dvlif%flag,o_dvlif%name, "Orography dV", "m/s2")
     1547 CALL histdef3d(iff,clef_stations(iff), &
     1548o_dtlif%flag,o_dtlif%name, "Orography dT", "K/s")
    12261549     ENDIF
    12271550
    12281551     IF (ok_hines) then
    1229  CALL histdef3d(iff,o_duhin%flag,o_duhin%name, "Hines GWD dU", "m/s2")
    1230  CALL histdef3d(iff,o_dvhin%flag,o_dvhin%name, "Hines GWD dV", "m/s2")
     1552 CALL histdef3d(iff,clef_stations(iff), &
     1553o_duhin%flag,o_duhin%name, "Hines GWD dU", "m/s2")
     1554 CALL histdef3d(iff,clef_stations(iff), &
     1555o_dvhin%flag,o_dvhin%name, "Hines GWD dV", "m/s2")
     1556
     1557 CALL histdef3d(iff,clef_stations(iff), &
     1558o_dthin%flag,o_dthin%name, "Hines GWD dT", "K/s")
    12311559     ENDIF
    12321560
     1561 CALL histdef3d(iff,clef_stations(iff), &
     1562o_rsu%flag,o_rsu%name, "SW upward radiation", "W m-2")
     1563 CALL histdef3d(iff,clef_stations(iff), &
     1564o_rsd%flag,o_rsd%name, "SW downward radiation", "W m-2")
     1565 CALL histdef3d(iff,clef_stations(iff), &
     1566o_rlu%flag,o_rlu%name, "LW upward radiation", "W m-2")
     1567 CALL histdef3d(iff,clef_stations(iff), &
     1568o_rld%flag,o_rld%name, "LW downward radiation", "W m-2")
     1569
     1570 CALL histdef3d(iff,clef_stations(iff), &
     1571o_rsucs%flag,o_rsucs%name, "SW CS upward radiation", "W m-2")
     1572 CALL histdef3d(iff,clef_stations(iff), &
     1573o_rsdcs%flag,o_rsdcs%name, "SW CS downward radiation", "W m-2")
     1574 CALL histdef3d(iff,clef_stations(iff), &
     1575o_rlucs%flag,o_rlucs%name, "LW CS upward radiation", "W m-2")
     1576 CALL histdef3d(iff,clef_stations(iff), &
     1577o_rldcs%flag,o_rldcs%name, "LW CS downward radiation", "W m-2")
     1578 
     1579 CALL histdef3d(iff,clef_stations(iff), &
     1580o_tnt%flag,o_tnt%name, "Tendency of air temperature", "K s-1")
     1581
     1582 CALL histdef3d(iff,clef_stations(iff), &
     1583o_tntc%flag,o_tntc%name, "Tendency of air temperature due to Moist Convection", &
     1584"K s-1")
     1585
     1586 CALL histdef3d(iff,clef_stations(iff), &
     1587o_tntr%flag,o_tntr%name, "Air temperature tendency due to Radiative heating", &
     1588"K s-1")
     1589
     1590 CALL histdef3d(iff,clef_stations(iff), &
     1591o_tntscpbl%flag,o_tntscpbl%name, "Air temperature tendency due to St cloud and precipitation and BL mixing", &
     1592"K s-1")
     1593
     1594 CALL histdef3d(iff,clef_stations(iff), &
     1595o_tnhus%flag,o_tnhus%name, "Tendency of specific humidity", "s-1")
     1596
     1597 CALL histdef3d(iff,clef_stations(iff), &
     1598o_tnhusc%flag,o_tnhusc%name, "Tendency of specific humidity due to convection", "s-1")
     1599
     1600 CALL histdef3d(iff,clef_stations(iff), &
     1601o_tnhusscpbl%flag,o_tnhusscpbl%name, "Tendency of Specific humidity due to ST cl, precip and BL mixing", &
     1602"s-1")
     1603
     1604 CALL histdef3d(iff,clef_stations(iff), &
     1605o_evu%flag,o_evu%name, "Eddy viscosity coefficient for Momentum Variables", "m2 s-1")
     1606
     1607 CALL histdef3d(iff,clef_stations(iff), &
     1608o_h2o%flag,o_h2o%name, "Mass Fraction of Water", "1")
     1609
     1610 CALL histdef3d(iff,clef_stations(iff), &
     1611o_mcd%flag,o_mcd%name, "Downdraft COnvective Mass Flux", "kg/(m2*s)")
     1612
     1613 CALL histdef3d(iff,clef_stations(iff), &
     1614o_dmc%flag,o_dmc%name, "Deep COnvective Mass Flux", "kg/(m2*s)")
     1615
     1616 CALL histdef3d(iff,clef_stations(iff), &
     1617o_ref_liq%flag,o_ref_liq%name, "Effective radius of convective cloud liquid water particle", "m")
     1618
     1619 CALL histdef3d(iff,clef_stations(iff), &
     1620o_ref_ice%flag,o_ref_ice%name, "Effective radius of startiform cloud ice particle", "m")
     1621
     1622   if (RCO2_per.NE.RCO2_act.OR.RCH4_per.NE.RCH4_act.OR. &
     1623    RN2O_per.NE.RN2O_act.OR.RCFC11_per.NE.RCFC11_act.OR. &
     1624    RCFC12_per.NE.RCFC12_act) THEN
     1625
     1626 CALL histdef2d(iff,clef_stations(iff),o_rsut4co2%flag,o_rsut4co2%name, &
     1627 "TOA Out SW in 4xCO2 atmosphere", "W/m2")
     1628CALL histdef2d(iff,clef_stations(iff),o_rlut4co2%flag,o_rlut4co2%name, &
     1629"TOA Out LW in 4xCO2 atmosphere", "W/m2")
     1630CALL histdef2d(iff,clef_stations(iff),o_rsutcs4co2%flag,o_rsutcs4co2%name, &
     1631"TOA Out CS SW in 4xCO2 atmosphere", "W/m2")
     1632CALL histdef2d(iff,clef_stations(iff),o_rlutcs4co2%flag,o_rlutcs4co2%name, &
     1633"TOA Out CS LW in 4xCO2 atmosphere", "W/m2")
     1634
     1635CALL histdef3d(iff,clef_stations(iff),o_rsu4co2%flag,o_rsu4co2%name, &
     1636"Upwelling SW 4xCO2 atmosphere", "W/m2")
     1637CALL histdef3d(iff,clef_stations(iff),o_rlu4co2%flag,o_rlu4co2%name, &
     1638"Upwelling LW 4xCO2 atmosphere", "W/m2")
     1639CALL histdef3d(iff,clef_stations(iff),o_rsucs4co2%flag,o_rsucs4co2%name, &
     1640"Upwelling CS SW 4xCO2 atmosphere", "W/m2")
     1641CALL histdef3d(iff,clef_stations(iff),o_rlucs4co2%flag,o_rlucs4co2%name, &
     1642"Upwelling CS LW 4xCO2 atmosphere", "W/m2")
     1643
     1644 CALL histdef3d(iff,clef_stations(iff),o_rsd4co2%flag,o_rsd4co2%name, &
     1645 "Downwelling SW 4xCO2 atmosphere", "W/m2")
     1646 CALL histdef3d(iff,clef_stations(iff),o_rld4co2%flag,o_rld4co2%name, &
     1647"Downwelling LW 4xCO2 atmosphere", "W/m2")
     1648 CALL histdef3d(iff,clef_stations(iff),o_rsdcs4co2%flag,o_rsdcs4co2%name, &
     1649"Downwelling CS SW 4xCO2 atmosphere", "W/m2")
     1650 CALL histdef3d(iff,clef_stations(iff),o_rldcs4co2%flag,o_rldcs4co2%name, &
     1651"Downwelling CS LW 4xCO2 atmosphere", "W/m2")
     1652
     1653   endif
    12331654
    12341655!Attention : sorties uniquement pour traceurs 3 et 4
     
    12381659           ttext(3)= "Age stratospheric air"
    12391660        END IF
    1240         CALL histdef3d (iff, o_trac(1)%flag,o_trac(1)%name,ttext(3), "-" )
     1661        CALL histdef3d(iff,clef_stations(iff), o_trac(1)%flag,o_trac(1)%name,ttext(3), "-" )
    12411662     END IF
    12421663     
    1243      IF (nqtot>=4) CALL histdef3d (iff, o_trac(2)%flag,o_trac(2)%name,ttext(4), "-" )
     1664     IF (nqtot>=4) CALL histdef3d(iff,clef_stations(iff), o_trac(2)%flag,o_trac(2)%name,ttext(4), "-" )
    12441665
    12451666
     
    12551676      end subroutine phys_output_open
    12561677
    1257       SUBROUTINE histdef2d (iff,flag_var,nomvar,titrevar,unitvar)
     1678      SUBROUTINE histdef2d (iff,lpoint,flag_var,nomvar,titrevar,unitvar)
    12581679     
    12591680       use ioipsl
    12601681       USE dimphy
    12611682       USE mod_phys_lmdz_para
     1683       USE iophy
    12621684
    12631685       IMPLICIT NONE
     
    12691691
    12701692       integer                          :: iff
     1693       logical                          :: lpoint
    12711694       integer, dimension(nfiles)       :: flag_var
    12721695       character(len=20)                 :: nomvar
     
    12841707! Appel a la lecture des noms et niveau d'ecriture des variables dans output.def
    12851708       call conf_physoutputs(nomvar,flag_var)
    1286        
     1709     
     1710       if(.NOT.lpoint) THEN 
    12871711       if ( flag_var(iff)<=lev_files(iff) ) then
    12881712 call histdef (nid_files(iff),nomvar,titrevar,unitvar, &
     
    12901714               type_ecri(iff), zstophym,zoutm(iff))               
    12911715       endif                     
     1716       else
     1717       if ( flag_var(iff)<=lev_files(iff) ) then
     1718 call histdef (nid_files(iff),nomvar,titrevar,unitvar, &
     1719               npstn,1,nhorim(iff), 1,1,1, -99, 32, &
     1720               type_ecri(iff), zstophym,zoutm(iff))               
     1721       endif                     
     1722       endif                     
    12921723      end subroutine histdef2d
    12931724
    1294       SUBROUTINE histdef3d (iff,flag_var,nomvar,titrevar,unitvar)
     1725      SUBROUTINE histdef3d (iff,lpoint,flag_var,nomvar,titrevar,unitvar)
    12951726
    12961727       use ioipsl
    12971728       USE dimphy
    12981729       USE mod_phys_lmdz_para
     1730       USE iophy
    12991731
    13001732       IMPLICIT NONE
     
    13061738
    13071739       integer                          :: iff
     1740       logical                          :: lpoint
    13081741       integer, dimension(nfiles)       :: flag_var
    13091742       character(len=20)                 :: nomvar
     
    13221755       endif
    13231756
     1757       if(.NOT.lpoint) THEN
    13241758       if ( flag_var(iff)<=lev_files(iff) ) then
    13251759          call histdef (nid_files(iff), nomvar, titrevar, unitvar, &
     
    13271761               levmax(iff)-levmin(iff)+1, nvertm(iff), 32, type_ecri(iff), &
    13281762               zstophym, zoutm(iff))
     1763       endif
     1764       else
     1765       if ( flag_var(iff)<=lev_files(iff) ) then
     1766          call histdef (nid_files(iff), nomvar, titrevar, unitvar, &
     1767               npstn,1,nhorim(iff), klev, levmin(iff), &
     1768               levmax(iff)-levmin(iff)+1, nvertm(iff), 32, &
     1769               type_ecri(iff), zstophym,zoutm(iff))
     1770       endif
    13291771       endif
    13301772      end subroutine histdef3d
Note: See TracChangeset for help on using the changeset viewer.