Changeset 1054 for LMDZ4/trunk/libf


Ignore:
Timestamp:
Nov 14, 2008, 5:38:42 PM (16 years ago)
Author:
lmdzadmin
Message:

Ajout sorties tendances dynamiques histLES
ACA/FH/IM

Location:
LMDZ4/trunk/libf/phylmd
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/phylmd/clesphys.h

    r1001 r1054  
    4545       REAL ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day
    4646       REAL ecrit_mth, ecrit_tra, ecrit_reg
     47       REAL ecrit_LES
    4748       REAL freq_ISCCP, ecrit_ISCCP
    4849       INTEGER :: ip_ebil_phy, iflag_rrtm
     
    6465     &     , freq_ISCCP, ecrit_ISCCP, ip_ebil_phy                       &
    6566     &     , ok_slab_sicOBS, ok_lic_melt, cvl_corr                      &
    66      &     , qsol0, iflag_rrtm, ok_strato,ok_hines
     67     &     , qsol0, iflag_rrtm, ok_strato,ok_hines,ecrit_LES
    6768     
    6869!$OMP THREADPRIVATE(/clesphys/)
  • LMDZ4/trunk/libf/phylmd/conf_phys.F90

    r1052 r1054  
    77
    88  subroutine conf_phys(ok_journe, ok_mensuel, ok_instan, ok_hf, &
     9 &                     ok_LES,&
    910 &                     solarlong0,seuil_inversion, &
    1011 &                     fact_cldcon, facttemps,ok_newmicro,iflag_radia,&
     
    5758  integer              :: iflag_radia
    5859  logical              :: ok_journe, ok_mensuel, ok_instan, ok_hf
     60  logical              :: ok_LES
    5961  LOGICAL              :: ok_ade, ok_aie, aerosol_couple
    6062  REAL                 :: bl95_b0, bl95_b1
     
    6668  logical,SAVE              :: ok_veget_omp, ok_newmicro_omp
    6769  logical,SAVE        :: ok_journe_omp, ok_mensuel_omp, ok_instan_omp, ok_hf_omp       
     70  logical,SAVE        :: ok_LES_omp   
    6871  LOGICAL,SAVE        :: ok_ade_omp, ok_aie_omp, aerosol_couple_omp
    6972  REAL,SAVE           :: bl95_b0_omp, bl95_b1_omp
     
    121124  REAL,SAVE :: lonmin_ins_omp, lonmax_ins_omp, latmin_ins_omp, latmax_ins_omp
    122125  REAL,SAVE :: ecrit_hf_omp, ecrit_day_omp, ecrit_mth_omp, ecrit_reg_omp
     126  REAL,SAVE :: ecrit_LES_omp
    123127  REAL,SAVE :: ecrit_tra_omp
    124128  REAL,SAVE :: cvl_corr_omp
     
    11581162  CALL getin('ok_hines',ok_hines_omp)
    11591163
     1164!Config Key  = OK_LES                                               
     1165!Config Desc = Pour des sorties LES                                 
     1166!Config Def  = .false.                                             
     1167!Config Help = Pour creer le fichier histLES contenant les sorties 
     1168!              LES                                                 
     1169!                                                                   
     1170  ok_LES_omp = .false.                                             
     1171  call getin('OK_LES', ok_LES_omp)                                 
     1172!
     1173!Config Key  = ecrit_LES
     1174!Config Desc = Frequence d'ecriture des resultats du LES en nombre de jours;
     1175!              par defaut 1., i.e. 1 jour
     1176!Config Def  = 1./8.
     1177!Config Help = ...
     1178!
     1179!
     1180  ecrit_LES_omp = 1./8.
     1181  call getin('ecrit_LES', ecrit_LES_omp)
     1182!
    11601183
    11611184!$OMP END MASTER
     
    12781301    ok_strato = ok_strato_omp
    12791302    ok_hines = ok_hines_omp
     1303    ok_LES = ok_LES_omp
     1304    ecrit_LES = ecrit_LES_omp
    12801305   
    12811306! Test of coherence between type_ocean and version_ocean
     
    13881413  write(numout,*)' lonmin lonmax latmin latmax bilKP_ins =',&
    13891414 & lonmin_ins, lonmax_ins, latmin_ins, latmax_ins
    1390   write(numout,*)' ecrit_ hf, day, mth, reg, tra, ISCCP',&
    1391  & ecrit_hf, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra, ecrit_ISCCP
     1415  write(numout,*)' ecrit_ hf, day, mth, reg, tra, ISCCP, LES',&
     1416 & ecrit_hf, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra, ecrit_ISCCP, ecrit_LES
    13921417
    13931418  write(numout,*) 'ok_strato = ', ok_strato
  • LMDZ4/trunk/libf/phylmd/phyetat0.F

    r1053 r1054  
    753753      ENDIF
    754754
     755      u_ancien = 0.0   !AXC: We don't have u_ancien and v_ancien in the start
     756      v_ancien = 0.0   !AXC: files, therefore they have to be initialized.
    755757c
    756758
  • LMDZ4/trunk/libf/phylmd/phys_local_var_mod.F90

    r1001 r1054  
    1818      REAL, SAVE, ALLOCATABLE :: d_t_dyn(:,:), d_q_dyn(:,:)
    1919      !$OMP THREADPRIVATE(d_t_dyn, d_q_dyn)
     20      REAL, SAVE, ALLOCATABLE :: d_u_dyn(:,:), d_v_dyn(:,:)
     21      !$OMP THREADPRIVATE(d_u_dyn, d_v_dyn)
    2022      REAL, SAVE, ALLOCATABLE :: d_t_con(:,:),d_q_con(:,:)
    2123      !$OMP THREADPRIVATE(d_t_con,d_q_con)
     
    7678      allocate(tr_seri(klon,klev,nbtr))
    7779      allocate(d_t_dyn(klon,klev),d_q_dyn(klon,klev))
     80      allocate(d_u_dyn(klon,klev),d_v_dyn(klon,klev))
    7881      allocate(d_t_con(klon,klev),d_q_con(klon,klev))
    7982      allocate(d_u_con(klon,klev),d_v_con(klon,klev))
     
    105108      deallocate(tr_seri)
    106109      deallocate(d_t_dyn,d_q_dyn)
     110      deallocate(d_u_dyn,d_v_dyn)
    107111      deallocate(d_t_con,d_q_con)
    108112      deallocate(d_u_con,d_v_con)
  • LMDZ4/trunk/libf/phylmd/phys_output_mod.F90

    r1045 r1054  
    1212  IMPLICIT NONE
    1313
    14    integer, parameter                           :: nfiles = 4
     14   integer, parameter                           :: nfiles = 5
    1515   logical, dimension(nfiles), save             :: clef_files
    1616   integer, dimension(nfiles), save             :: lev_files
     
    2626!                 entre [lonmin_reg,lonmax_reg] et [latmin_reg,latmax_reg]
    2727
    28   logical, dimension(nfiles), save  :: ok_reglim         = (/ .false., .false., .false., .false. /)
    29   real, dimension(nfiles), save     :: lonmin_reg        = (/ 0., -45., 0., 0. /)
    30   real, dimension(nfiles), save     :: lonmax_reg        = (/ 90., 45., 90., 90. /)
    31   real, dimension(nfiles), save     :: latmin_reg        = (/ 0., -45., 0., 0. /)
    32   real, dimension(nfiles), save     :: latmax_reg        = (/ 90., 90., 90., 90. /)
     28  logical, dimension(nfiles), save  :: ok_reglim         = (/ .false., .false., .false., .false., .true. /)
     29  real, dimension(nfiles), save     :: lonmin_reg        = (/ 0., -45., 0., 0., -162. /)
     30  real, dimension(nfiles), save     :: lonmax_reg        = (/ 90., 45., 90., 90., -144. /)
     31  real, dimension(nfiles), save     :: latmin_reg        = (/ 0., -45., 0., 0., 7. /)
     32  real, dimension(nfiles), save     :: latmax_reg        = (/ 90., 90., 90., 90., 21. /)
    3333
    3434!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    3838
    3939!!! 1D
    40   integer, dimension(nfiles) , save :: flag_phis         = (/ 1, 1, 10, 1 /)
    41   integer, dimension(nfiles) , save :: flag_aire         = (/ 1, 1, 10,  1 /)
    42   integer, dimension(nfiles) , save :: flag_contfracATM  = (/ 10, 1,  1, 10 /)
    43   integer, dimension(nfiles) , save :: flag_contfracOR   = (/ 10, 1,  1, 10 /)
    44   integer, dimension(nfiles) , save :: flag_aireTER      = (/ 10, 10, 1, 10 /)
     40  integer, dimension(nfiles) , save :: flag_phis         = (/ 1, 1, 10, 1, 1 /)
     41  integer, dimension(nfiles) , save :: flag_aire         = (/ 1, 1, 10,  1, 1 /)
     42  integer, dimension(nfiles) , save :: flag_contfracATM  = (/ 10, 1,  1, 10, 10 /)
     43  integer, dimension(nfiles) , save :: flag_contfracOR   = (/ 10, 1,  1, 10, 10 /)
     44  integer, dimension(nfiles) , save :: flag_aireTER      = (/ 10, 10, 1, 10, 10 /)
    4545 
    4646!!! 2D
    47   integer, dimension(nfiles) , save :: flag_flat         = (/ 10, 1, 10, 10 /)
    48   integer, dimension(nfiles) , save :: flag_slp          = (/ 1, 1, 1, 10 /)
    49   integer, dimension(nfiles) , save :: flag_tsol         = (/ 1, 1, 1, 1 /)
    50   integer, dimension(nfiles) , save :: flag_t2m          = (/ 1, 1, 1, 1 /)
    51   integer, dimension(nfiles) , save :: flag_t2m_min      = (/ 1, 1, 10, 10 /)
    52   integer, dimension(nfiles) , save :: flag_t2m_max      = (/ 1, 1, 10, 10 /)
    53   integer, dimension(nfiles) , save :: flag_t2m_sol      = (/ 10, 4, 10, 10 /)
    54   integer, dimension(nfiles) , save :: flag_wind10m      = (/ 1, 1, 1, 10 /)
    55   integer, dimension(nfiles) , save :: flag_wind10max    = (/ 10, 1, 10, 10 /)
    56   integer, dimension(nfiles) , save :: flag_sicf         = (/ 1, 1, 10, 10 /)
    57   integer, dimension(nfiles) , save :: flag_q2m          = (/ 1, 1, 1, 1 /)
    58   integer, dimension(nfiles) , save :: flag_u10m         = (/ 1, 1, 1, 1 /)
    59   integer, dimension(nfiles) , save :: flag_v10m         = (/ 1, 1, 1, 1 /)
    60   integer, dimension(nfiles) , save :: flag_psol         = (/ 1, 1, 1, 1 /)
    61   integer, dimension(nfiles) , save :: flag_qsurf        = (/ 1, 10, 10, 10 /)
    62 
    63   integer, dimension(nfiles) , save :: flag_u10m_sol     = (/ 10, 4, 10, 10 /)
    64   integer, dimension(nfiles) , save :: flag_v10m_sol     = (/ 10, 4, 10, 10 /)
    65 
    66   integer, dimension(nfiles) , save :: flag_qsol         = (/ 1, 10, 10, 1 /)
    67 
    68   integer, dimension(nfiles),save   :: flag_ndayrain     = (/ 1, 10, 10, 10 /)
    69   integer, dimension(nfiles),save   :: flag_precip       = (/ 1, 1, 1, 1 /)
    70   integer,  dimension(nfiles), save :: flag_plul         = (/ 1, 1, 1, 1 /)
    71 
    72   integer, dimension(nfiles) , save :: flag_pluc         = (/ 1, 1, 1, 1 /)
    73   integer, dimension(nfiles) , save :: flag_snow         = (/ 1, 1, 10, 1 /)
    74   integer, dimension(nfiles) , save :: flag_evap         = (/ 1, 1, 10, 1 /)
    75   integer, dimension(nfiles) , save :: flag_tops         = (/ 1, 1, 10, 10 /)
    76   integer, dimension(nfiles) , save :: flag_tops0        = (/ 1, 5, 10, 10 /)
    77   integer, dimension(nfiles) , save :: flag_topl         = (/ 1, 1, 10, 1 /)
    78   integer, dimension(nfiles) , save :: flag_topl0        = (/ 1, 5, 10, 10 /)
    79   integer, dimension(nfiles) , save :: flag_SWupTOA      = (/ 1, 4, 10, 10 /)
    80   integer, dimension(nfiles) , save :: flag_SWupTOAclr   = (/ 1, 4, 10, 10 /)
    81   integer, dimension(nfiles) , save :: flag_SWdnTOA      = (/ 1, 4, 10, 10 /)
    82   integer, dimension(nfiles) , save :: flag_SWdnTOAclr   = (/ 1, 4, 10, 10 /)
    83   integer, dimension(nfiles) , save :: flag_SWup200      = (/ 1, 10, 10, 10 /)
    84   integer, dimension(nfiles) , save :: flag_SWup200clr   = (/ 10, 1, 10, 10 /)
    85   integer, dimension(nfiles) , save :: flag_SWdn200      = (/ 1, 10, 10, 10 /)
    86   integer, dimension(nfiles) , save :: flag_SWdn200clr   = (/ 10, 1, 10, 10 /)
     47  integer, dimension(nfiles) , save :: flag_flat         = (/ 10, 1, 10, 10, 1 /)
     48  integer, dimension(nfiles) , save :: flag_slp          = (/ 1, 1, 1, 10, 1 /)
     49  integer, dimension(nfiles) , save :: flag_tsol         = (/ 1, 1, 1, 1, 1 /)
     50  integer, dimension(nfiles) , save :: flag_t2m          = (/ 1, 1, 1, 1, 1 /)
     51  integer, dimension(nfiles) , save :: flag_t2m_min      = (/ 1, 1, 10, 10, 10 /)
     52  integer, dimension(nfiles) , save :: flag_t2m_max      = (/ 1, 1, 10, 10, 10 /)
     53  integer, dimension(nfiles) , save :: flag_t2m_sol      = (/ 10, 4, 10, 10, 10 /)
     54  integer, dimension(nfiles) , save :: flag_wind10m      = (/ 1, 1, 1, 10, 10 /)
     55  integer, dimension(nfiles) , save :: flag_wind10max    = (/ 10, 1, 10, 10, 10 /)
     56  integer, dimension(nfiles) , save :: flag_sicf         = (/ 1, 1, 10, 10, 10 /)
     57  integer, dimension(nfiles) , save :: flag_q2m          = (/ 1, 1, 1, 1, 1 /)
     58  integer, dimension(nfiles) , save :: flag_u10m         = (/ 1, 1, 1, 1, 1 /)
     59  integer, dimension(nfiles) , save :: flag_v10m         = (/ 1, 1, 1, 1, 1 /)
     60  integer, dimension(nfiles) , save :: flag_psol         = (/ 1, 1, 1, 1, 1 /)
     61  integer, dimension(nfiles) , save :: flag_qsurf        = (/ 1, 10, 10, 10, 10 /)
     62
     63  integer, dimension(nfiles) , save :: flag_u10m_sol     = (/ 10, 4, 10, 10, 10 /)
     64  integer, dimension(nfiles) , save :: flag_v10m_sol     = (/ 10, 4, 10, 10, 10 /)
     65
     66  integer, dimension(nfiles) , save :: flag_qsol         = (/ 1, 10, 10, 1, 1 /)
     67
     68  integer, dimension(nfiles),save   :: flag_ndayrain     = (/ 1, 10, 10, 10, 10 /)
     69  integer, dimension(nfiles),save   :: flag_precip       = (/ 1, 1, 1, 1, 1 /)
     70  integer,  dimension(nfiles), save :: flag_plul         = (/ 1, 1, 1, 1, 10 /)
     71
     72  integer, dimension(nfiles) , save :: flag_pluc         = (/ 1, 1, 1, 1, 10 /)
     73  integer, dimension(nfiles) , save :: flag_snow         = (/ 1, 1, 10, 1, 10 /)
     74  integer, dimension(nfiles) , save :: flag_evap         = (/ 1, 1, 10, 1, 10 /)
     75  integer, dimension(nfiles) , save :: flag_tops         = (/ 1, 1, 10, 10, 10 /)
     76  integer, dimension(nfiles) , save :: flag_tops0        = (/ 1, 5, 10, 10, 10 /)
     77  integer, dimension(nfiles) , save :: flag_topl         = (/ 1, 1, 10, 1, 10 /)
     78  integer, dimension(nfiles) , save :: flag_topl0        = (/ 1, 5, 10, 10, 10 /)
     79  integer, dimension(nfiles) , save :: flag_SWupTOA      = (/ 1, 4, 10, 10, 10 /)
     80  integer, dimension(nfiles) , save :: flag_SWupTOAclr   = (/ 1, 4, 10, 10, 10 /)
     81  integer, dimension(nfiles) , save :: flag_SWdnTOA      = (/ 1, 4, 10, 10, 10 /)
     82  integer, dimension(nfiles) , save :: flag_SWdnTOAclr   = (/ 1, 4, 10, 10, 10 /)
     83  integer, dimension(nfiles) , save :: flag_SWup200      = (/ 1, 10, 10, 10, 10 /)
     84  integer, dimension(nfiles) , save :: flag_SWup200clr   = (/ 10, 1, 10, 10, 10 /)
     85  integer, dimension(nfiles) , save :: flag_SWdn200      = (/ 1, 10, 10, 10, 10 /)
     86  integer, dimension(nfiles) , save :: flag_SWdn200clr   = (/ 10, 1, 10, 10, 10 /)
    8787
    8888! arajouter
    89 !  integer, dimension(nfiles) , save :: flag_LWupTOA     = (/ 1, 4, 10, 10 /)
    90 !  integer, dimension(nfiles) , save :: flag_LWupTOAclr  = (/ 1, 4, 10, 10 /)
    91 !  integer, dimension(nfiles) , save :: flag_LWdnTOA     = (/ 1, 4, 10, 10 /)
    92 !  integer, dimension(nfiles) , save :: flag_LWdnTOAclr  = (/ 1, 4, 10, 10 /)
    93 
    94   integer, dimension(nfiles) , save :: flag_LWup200      = (/ 1, 10, 10, 10 /)
    95   integer, dimension(nfiles) , save :: flag_LWup200clr   = (/ 1, 10, 10, 10 /)
    96   integer, dimension(nfiles) , save :: flag_LWdn200      = (/ 1, 10, 10, 10 /)
    97   integer, dimension(nfiles) , save :: flag_LWdn200clr   = (/ 1, 10, 10, 10 /)
    98   integer, dimension(nfiles) , save :: flag_sols         = (/ 1, 1, 10, 1 /)
    99   integer, dimension(nfiles) , save :: flag_sols0        = (/ 1, 5, 10, 10 /)
    100   integer, dimension(nfiles) , save :: flag_soll         = (/ 1, 1, 10, 1 /)
    101   integer, dimension(nfiles) , save :: flag_soll0        = (/ 1, 5, 10, 10 /)
    102   integer, dimension(nfiles) , save :: flag_radsol       = (/ 1, 1, 10, 10 /)
    103   integer, dimension(nfiles) , save :: flag_SWupSFC      = (/ 1, 4, 10, 10 /)
    104   integer, dimension(nfiles) , save :: flag_SWupSFCclr   = (/ 1, 4, 10, 10 /)
    105   integer, dimension(nfiles) , save :: flag_SWdnSFC      = (/ 1, 1, 10, 10 /)
    106   integer, dimension(nfiles) , save :: flag_SWdnSFCclr   = (/ 1, 4, 10, 10 /)
    107   integer, dimension(nfiles) , save :: flag_LWupSFC      = (/ 1, 4, 10, 10 /)
    108   integer, dimension(nfiles) , save :: flag_LWupSFCclr   = (/ 1, 4, 10, 10 /)
    109   integer, dimension(nfiles) , save :: flag_LWdnSFC      = (/ 1, 4, 10, 10 /)
    110   integer, dimension(nfiles) , save :: flag_LWdnSFCclr   = (/ 1, 4, 10, 10 /)
    111   integer, dimension(nfiles) , save :: flag_bils         = (/ 1, 2, 10, 1 /)
    112   integer, dimension(nfiles) , save :: flag_sens         = (/ 1, 1, 10, 1 /)
    113   integer, dimension(nfiles) , save :: flag_fder         = (/ 1, 2, 10, 1 /)
    114   integer, dimension(nfiles) , save :: flag_ffonte       = (/ 1, 10, 10, 10 /)
    115   integer, dimension(nfiles) , save :: flag_fqcalving    = (/ 1, 10, 10, 10 /)
    116   integer, dimension(nfiles) , save :: flag_fqfonte      = (/ 1, 10, 10, 10 /)
    117 
    118   integer, dimension(nfiles) , save :: flag_taux_sol     = (/ 1, 4, 10, 1 /)
    119   integer, dimension(nfiles) , save :: flag_tauy_sol     = (/ 1, 4, 10, 1 /)
    120 
    121   integer, dimension(nfiles) , save :: flag_pourc_sol    = (/ 1, 4, 10, 1 /)
    122   integer, dimension(nfiles) , save :: flag_fract_sol    = (/ 1, 4, 10, 1 /)
    123   integer, dimension(nfiles) , save :: flag_tsol_sol     = (/ 1, 4, 10, 1 /)
    124   integer, dimension(nfiles) , save :: flag_sens_sol     = (/ 1, 4, 10, 1 /)
    125   integer, dimension(nfiles) , save :: flag_lat_sol      = (/ 1, 4, 10, 1 /)
    126   integer, dimension(nfiles) , save :: flag_flw_sol      = (/ 1, 10, 10, 10 /)
    127   integer, dimension(nfiles) , save :: flag_fsw_sol      = (/ 1, 10, 10, 10 /)
    128   integer, dimension(nfiles) , save :: flag_wbils_sol    = (/ 1, 10, 10, 10 /)
    129   integer, dimension(nfiles) , save :: flag_wbilo_sol    = (/ 1, 10, 10, 10 /)
    130 
    131   integer, dimension(nfiles) , save :: flag_cdrm         = (/ 1, 10, 10, 1 /)
    132   integer, dimension(nfiles) , save :: flag_cdrh         = (/ 1, 10, 10, 1 /)
    133   integer, dimension(nfiles) , save :: flag_cldl         = (/ 1, 1, 10, 10 /)
    134   integer, dimension(nfiles) , save :: flag_cldm         = (/ 1, 1, 10, 10 /)
    135   integer, dimension(nfiles) , save :: flag_cldh         = (/ 1, 1, 10, 10 /)
    136   integer, dimension(nfiles) , save :: flag_cldt         = (/ 1, 1, 2, 10 /)
    137   integer, dimension(nfiles) , save :: flag_cldq         = (/ 1, 1, 10, 10 /)
    138   integer, dimension(nfiles) , save :: flag_lwp          = (/ 1, 5, 10, 10 /)
    139   integer, dimension(nfiles) , save :: flag_iwp          = (/ 1, 5, 10, 10 /)
    140   integer, dimension(nfiles) , save :: flag_ue           = (/ 1, 10, 10, 10 /)
    141   integer, dimension(nfiles) , save :: flag_ve           = (/ 1, 10, 10, 10 /)
    142   integer, dimension(nfiles) , save :: flag_uq           = (/ 1, 10, 10, 10 /)
    143   integer, dimension(nfiles) , save :: flag_vq           = (/ 1, 10, 10, 10 /)
     89!  integer, dimension(nfiles) , save :: flag_LWupTOA     = (/ 1, 4, 10, 10, 10 /)
     90!  integer, dimension(nfiles) , save :: flag_LWupTOAclr  = (/ 1, 4, 10, 10, 10 /)
     91!  integer, dimension(nfiles) , save :: flag_LWdnTOA     = (/ 1, 4, 10, 10, 10 /)
     92!  integer, dimension(nfiles) , save :: flag_LWdnTOAclr  = (/ 1, 4, 10, 10, 10 /)
     93
     94  integer, dimension(nfiles) , save :: flag_LWup200      = (/ 1, 10, 10, 10, 10 /)
     95  integer, dimension(nfiles) , save :: flag_LWup200clr   = (/ 1, 10, 10, 10, 10 /)
     96  integer, dimension(nfiles) , save :: flag_LWdn200      = (/ 1, 10, 10, 10, 10 /)
     97  integer, dimension(nfiles) , save :: flag_LWdn200clr   = (/ 1, 10, 10, 10, 10 /)
     98  integer, dimension(nfiles) , save :: flag_sols         = (/ 1, 1, 10, 1, 10 /)
     99  integer, dimension(nfiles) , save :: flag_sols0        = (/ 1, 5, 10, 10, 10 /)
     100  integer, dimension(nfiles) , save :: flag_soll         = (/ 1, 1, 10, 1, 10 /)
     101  integer, dimension(nfiles) , save :: flag_soll0        = (/ 1, 5, 10, 10, 10 /)
     102  integer, dimension(nfiles) , save :: flag_radsol       = (/ 1, 1, 10, 10, 10 /)
     103  integer, dimension(nfiles) , save :: flag_SWupSFC      = (/ 1, 4, 10, 10, 10 /)
     104  integer, dimension(nfiles) , save :: flag_SWupSFCclr   = (/ 1, 4, 10, 10, 10 /)
     105  integer, dimension(nfiles) , save :: flag_SWdnSFC      = (/ 1, 1, 10, 10, 10 /)
     106  integer, dimension(nfiles) , save :: flag_SWdnSFCclr   = (/ 1, 4, 10, 10, 10 /)
     107  integer, dimension(nfiles) , save :: flag_LWupSFC      = (/ 1, 4, 10, 10, 10 /)
     108  integer, dimension(nfiles) , save :: flag_LWupSFCclr   = (/ 1, 4, 10, 10, 10 /)
     109  integer, dimension(nfiles) , save :: flag_LWdnSFC      = (/ 1, 4, 10, 10, 10 /)
     110  integer, dimension(nfiles) , save :: flag_LWdnSFCclr   = (/ 1, 4, 10, 10, 10 /)
     111  integer, dimension(nfiles) , save :: flag_bils         = (/ 1, 2, 10, 1, 10 /)
     112  integer, dimension(nfiles) , save :: flag_sens         = (/ 1, 1, 10, 1, 1 /)
     113  integer, dimension(nfiles) , save :: flag_fder         = (/ 1, 2, 10, 1, 10 /)
     114  integer, dimension(nfiles) , save :: flag_ffonte       = (/ 1, 10, 10, 10, 10 /)
     115  integer, dimension(nfiles) , save :: flag_fqcalving    = (/ 1, 10, 10, 10, 10 /)
     116  integer, dimension(nfiles) , save :: flag_fqfonte      = (/ 1, 10, 10, 10, 10 /)
     117
     118  integer, dimension(nfiles) , save :: flag_taux_sol     = (/ 1, 4, 10, 1, 10 /)
     119  integer, dimension(nfiles) , save :: flag_tauy_sol     = (/ 1, 4, 10, 1, 10 /)
     120
     121  integer, dimension(nfiles) , save :: flag_pourc_sol    = (/ 1, 4, 10, 1, 10 /)
     122  integer, dimension(nfiles) , save :: flag_fract_sol    = (/ 1, 4, 10, 1, 10 /)
     123  integer, dimension(nfiles) , save :: flag_tsol_sol     = (/ 1, 4, 10, 1, 10 /)
     124  integer, dimension(nfiles) , save :: flag_sens_sol     = (/ 1, 4, 10, 1, 10 /)
     125  integer, dimension(nfiles) , save :: flag_lat_sol      = (/ 1, 4, 10, 1, 10 /)
     126  integer, dimension(nfiles) , save :: flag_flw_sol      = (/ 1, 10, 10, 10, 10 /)
     127  integer, dimension(nfiles) , save :: flag_fsw_sol      = (/ 1, 10, 10, 10, 10 /)
     128  integer, dimension(nfiles) , save :: flag_wbils_sol    = (/ 1, 10, 10, 10, 10 /)
     129  integer, dimension(nfiles) , save :: flag_wbilo_sol    = (/ 1, 10, 10, 10, 10 /)
     130
     131  integer, dimension(nfiles) , save :: flag_cdrm         = (/ 1, 10, 10, 1, 10 /)
     132  integer, dimension(nfiles) , save :: flag_cdrh         = (/ 1, 10, 10, 1, 10 /)
     133  integer, dimension(nfiles) , save :: flag_cldl         = (/ 1, 1, 10, 10, 10 /)
     134  integer, dimension(nfiles) , save :: flag_cldm         = (/ 1, 1, 10, 10, 10 /)
     135  integer, dimension(nfiles) , save :: flag_cldh         = (/ 1, 1, 10, 10, 10 /)
     136  integer, dimension(nfiles) , save :: flag_cldt         = (/ 1, 1, 2, 10, 10 /)
     137  integer, dimension(nfiles) , save :: flag_cldq         = (/ 1, 1, 10, 10, 10 /)
     138  integer, dimension(nfiles) , save :: flag_lwp          = (/ 1, 5, 10, 10, 10 /)
     139  integer, dimension(nfiles) , save :: flag_iwp          = (/ 1, 5, 10, 10, 10 /)
     140  integer, dimension(nfiles) , save :: flag_ue           = (/ 1, 10, 10, 10, 10 /)
     141  integer, dimension(nfiles) , save :: flag_ve           = (/ 1, 10, 10, 10, 10 /)
     142  integer, dimension(nfiles) , save :: flag_uq           = (/ 1, 10, 10, 10, 10 /)
     143  integer, dimension(nfiles) , save :: flag_vq           = (/ 1, 10, 10, 10, 10 /)
    144144 
    145   integer, dimension(nfiles) , save :: flag_cape         = (/ 1, 10, 10, 10 /)
    146   integer, dimension(nfiles) , save :: flag_pbase        = (/ 1, 10, 10, 10 /)
    147   integer, dimension(nfiles) , save :: flag_ptop         = (/ 1, 4, 10, 10 /)
    148   integer, dimension(nfiles) , save :: flag_fbase        = (/ 1, 10, 10, 10 /)
    149   integer, dimension(nfiles) , save :: flag_prw          = (/ 1, 1, 10, 10 /)
    150 
    151   integer, dimension(nfiles) , save :: flag_s_pblh       = (/ 1, 10, 10, 1 /)
    152   integer, dimension(nfiles) , save :: flag_s_pblt       = (/ 1, 10, 10, 1 /)
    153   integer, dimension(nfiles) , save :: flag_s_lcl       = (/ 1, 10, 10, 1 /)
    154   integer, dimension(nfiles) , save :: flag_s_capCL      = (/ 1, 10, 10, 1 /)
    155   integer, dimension(nfiles) , save :: flag_s_oliqCL    = (/ 1, 10, 10, 1 /)
    156   integer, dimension(nfiles) , save :: flag_s_cteiCL     = (/ 1, 10, 10, 1 /)
    157   integer, dimension(nfiles) , save :: flag_s_therm      = (/ 1, 10, 10, 1 /)
    158   integer, dimension(nfiles) , save :: flag_s_trmb1      = (/ 1, 10, 10, 1 /)
    159   integer, dimension(nfiles) , save :: flag_s_trmb2      = (/ 1, 10, 10, 1 /)
    160   integer, dimension(nfiles) , save :: flag_s_trmb3      = (/ 1, 10, 10, 1 /)
    161 
    162   integer, dimension(nfiles) , save :: flag_slab_bils    = (/ 1, 1, 10, 10 /)
    163 
    164   integer, dimension(nfiles) , save :: flag_ale_bl    = (/ 1, 1, 1, 1 /)
    165   integer, dimension(nfiles) , save :: flag_alp_bl    = (/ 1, 1, 1, 1 /)
    166   integer, dimension(nfiles) , save :: flag_ale_wk    = (/ 1, 1, 1, 1 /)
    167   integer, dimension(nfiles) , save :: flag_alp_wk    = (/ 1, 1, 1, 1 /)
    168 
    169   integer, dimension(nfiles) , save :: flag_ale       = (/ 1, 1, 1, 1 /)
    170   integer, dimension(nfiles) , save :: flag_alp       = (/ 1, 1, 1, 1 /)
    171   integer, dimension(nfiles) , save :: flag_cin       = (/ 1, 1, 1, 1 /)
    172   integer, dimension(nfiles) , save :: flag_wape       = (/ 1, 1, 1, 1 /)
     145  integer, dimension(nfiles) , save :: flag_cape         = (/ 1, 10, 10, 10, 10 /)
     146  integer, dimension(nfiles) , save :: flag_pbase        = (/ 1, 10, 10, 10, 10 /)
     147  integer, dimension(nfiles) , save :: flag_ptop         = (/ 1, 4, 10, 10, 10 /)
     148  integer, dimension(nfiles) , save :: flag_fbase        = (/ 1, 10, 10, 10, 10 /)
     149  integer, dimension(nfiles) , save :: flag_prw          = (/ 1, 1, 10, 10, 10 /)
     150
     151  integer, dimension(nfiles) , save :: flag_s_pblh       = (/ 1, 10, 10, 1, 1 /)
     152  integer, dimension(nfiles) , save :: flag_s_pblt       = (/ 1, 10, 10, 1, 1 /)
     153  integer, dimension(nfiles) , save :: flag_s_lcl       = (/ 1, 10, 10, 1, 10 /)
     154  integer, dimension(nfiles) , save :: flag_s_capCL      = (/ 1, 10, 10, 1, 10 /)
     155  integer, dimension(nfiles) , save :: flag_s_oliqCL    = (/ 1, 10, 10, 1, 10 /)
     156  integer, dimension(nfiles) , save :: flag_s_cteiCL     = (/ 1, 10, 10, 1, 1 /)
     157  integer, dimension(nfiles) , save :: flag_s_therm      = (/ 1, 10, 10, 1, 1 /)
     158  integer, dimension(nfiles) , save :: flag_s_trmb1      = (/ 1, 10, 10, 1, 10 /)
     159  integer, dimension(nfiles) , save :: flag_s_trmb2      = (/ 1, 10, 10, 1, 10 /)
     160  integer, dimension(nfiles) , save :: flag_s_trmb3      = (/ 1, 10, 10, 1, 10 /)
     161
     162  integer, dimension(nfiles) , save :: flag_slab_bils    = (/ 1, 1, 10, 10, 10 /)
     163
     164  integer, dimension(nfiles) , save :: flag_ale_bl    = (/ 1, 1, 1, 1, 10 /)
     165  integer, dimension(nfiles) , save :: flag_alp_bl    = (/ 1, 1, 1, 1, 10 /)
     166  integer, dimension(nfiles) , save :: flag_ale_wk    = (/ 1, 1, 1, 1, 10 /)
     167  integer, dimension(nfiles) , save :: flag_alp_wk    = (/ 1, 1, 1, 1, 10 /)
     168
     169  integer, dimension(nfiles) , save :: flag_ale       = (/ 1, 1, 1, 1, 10 /)
     170  integer, dimension(nfiles) , save :: flag_alp       = (/ 1, 1, 1, 1, 10 /)
     171  integer, dimension(nfiles) , save :: flag_cin       = (/ 1, 1, 1, 1, 10 /)
     172  integer, dimension(nfiles) , save :: flag_wape       = (/ 1, 1, 1, 1, 10 /)
    173173
    174174
     
    181181!      on ecrit ph  a 500   au niv 3
    182182
    183   integer, dimension(nfiles) , save :: flag_ulevsSTD     = (/ 1, 1, 3, 10 /)
    184   integer, dimension(nfiles) , save :: flag_vlevsSTD     = (/ 1, 1, 3, 10 /)
    185   integer, dimension(nfiles) , save :: flag_wlevsSTD     = (/ 1, 1, 10, 10 /)
    186   integer, dimension(nfiles) , save :: flag_tlevsSTD     = (/ 10, 10, 3, 10 /)
    187   integer, dimension(nfiles) , save :: flag_qlevsSTD     = (/ 10, 10, 3, 10 /)
    188   integer, dimension(nfiles) , save :: flag_philevsSTD   = (/ 1, 1, 1, 10 /)
    189 
    190   integer, dimension(nfiles) , save :: flag_t_oce_sic    = (/ 1, 10, 10, 10 /)
    191 
    192   integer, dimension(nfiles) , save :: flag_weakinv      = (/ 10, 1, 10, 10 /)
    193   integer, dimension(nfiles) , save :: flag_dthmin       = (/ 10, 1, 10, 10 /)
    194   integer, dimension(nfiles) , save :: flag_u10_sol      = (/ 10, 4, 10, 10 /)
    195   integer, dimension(nfiles) , save :: flag_v10_sol      = (/ 10, 4, 10, 10 /)
    196   integer, dimension(nfiles) , save :: flag_cldtau       = (/ 10, 5, 10, 10 /)                     
    197   integer, dimension(nfiles) , save :: flag_cldemi       = (/ 10, 5, 10, 10 /)
    198   integer, dimension(nfiles) , save :: flag_rh2m         = (/ 10, 5, 10, 10 /)
    199   integer, dimension(nfiles) , save :: flag_qsat2m       = (/ 10, 5, 10, 10 /)
    200   integer, dimension(nfiles) , save :: flag_tpot         = (/ 10, 5, 10, 10 /)
    201   integer, dimension(nfiles) , save :: flag_tpote        = (/ 10, 5, 10, 10 /)
    202   integer, dimension(nfiles) , save :: flag_tke          = (/ 4, 10, 10, 10 /)
    203   integer, dimension(nfiles) , save :: flag_tke_max      = (/ 4, 10, 10, 10 /)
    204   integer, dimension(nfiles) , save :: flag_tke_sol      = (/ 10, 4, 10, 10 /)
    205   integer, dimension(nfiles) , save :: flag_tke_max_sol  = (/ 10, 4, 10, 10 /)
    206   integer, dimension(nfiles) , save :: flag_kz           = (/ 4, 10, 10, 10 /)
    207   integer, dimension(nfiles) , save :: flag_kz_max       = (/ 4, 10, 10, 10 /)
    208   integer, dimension(nfiles) , save :: flag_SWnetOR      = (/ 10, 10, 2, 10 /)
    209   integer, dimension(nfiles) , save :: flag_SWdownOR     = (/ 10, 10, 2, 10 /)
    210   integer, dimension(nfiles) , save :: flag_LWdownOR     = (/ 10, 10, 2, 10 /)
    211 
    212   integer, dimension(nfiles) , save :: flag_snowl         = (/ 10, 1, 10, 10 /)
    213   integer, dimension(nfiles) , save :: flag_cape_max      = (/ 10, 1, 10, 10 /)
    214   integer, dimension(nfiles) , save :: flag_solldown      = (/ 10, 1, 10, 1 /)
    215 
    216   integer, dimension(nfiles) , save :: flag_dtsvdfo       = (/ 10, 10, 10, 1 /)
    217   integer, dimension(nfiles) , save :: flag_dtsvdft       = (/ 10, 10, 10, 1 /)
    218   integer, dimension(nfiles) , save :: flag_dtsvdfg       = (/ 10, 10, 10, 1 /)
    219   integer, dimension(nfiles) , save :: flag_dtsvdfi       = (/ 10, 10, 10, 1 /)
    220   integer, dimension(nfiles) , save :: flag_rugs          = (/ 10, 10, 10, 1 /)
     183  integer, dimension(nfiles) , save :: flag_ulevsSTD     = (/ 1, 1, 3, 10, 10 /)
     184  integer, dimension(nfiles) , save :: flag_vlevsSTD     = (/ 1, 1, 3, 10, 10 /)
     185  integer, dimension(nfiles) , save :: flag_wlevsSTD     = (/ 1, 1, 10, 10, 10 /)
     186  integer, dimension(nfiles) , save :: flag_tlevsSTD     = (/ 10, 10, 3, 10, 10 /)
     187  integer, dimension(nfiles) , save :: flag_qlevsSTD     = (/ 10, 10, 3, 10, 10 /)
     188  integer, dimension(nfiles) , save :: flag_philevsSTD   = (/ 1, 1, 1, 10, 10 /)
     189
     190  integer, dimension(nfiles) , save :: flag_t_oce_sic    = (/ 1, 10, 10, 10, 10 /)
     191
     192  integer, dimension(nfiles) , save :: flag_weakinv      = (/ 10, 1, 10, 10, 10 /)
     193  integer, dimension(nfiles) , save :: flag_dthmin       = (/ 10, 1, 10, 10, 10 /)
     194  integer, dimension(nfiles) , save :: flag_u10_sol      = (/ 10, 4, 10, 10, 10 /)
     195  integer, dimension(nfiles) , save :: flag_v10_sol      = (/ 10, 4, 10, 10, 10 /)
     196  integer, dimension(nfiles) , save :: flag_cldtau       = (/ 10, 5, 10, 10, 10 /)                     
     197  integer, dimension(nfiles) , save :: flag_cldemi       = (/ 10, 5, 10, 10, 10 /)
     198  integer, dimension(nfiles) , save :: flag_rh2m         = (/ 10, 5, 10, 10, 10 /)
     199  integer, dimension(nfiles) , save :: flag_qsat2m       = (/ 10, 5, 10, 10, 10 /)
     200  integer, dimension(nfiles) , save :: flag_tpot         = (/ 10, 5, 10, 10, 10 /)
     201  integer, dimension(nfiles) , save :: flag_tpote        = (/ 10, 5, 10, 10, 10 /)
     202  integer, dimension(nfiles) , save :: flag_tke          = (/ 4, 10, 10, 10, 10 /)
     203  integer, dimension(nfiles) , save :: flag_tke_max      = (/ 4, 10, 10, 10, 10 /)
     204  integer, dimension(nfiles) , save :: flag_tke_sol      = (/ 10, 4, 10, 10, 10 /)
     205  integer, dimension(nfiles) , save :: flag_tke_max_sol  = (/ 10, 4, 10, 10, 10 /)
     206  integer, dimension(nfiles) , save :: flag_kz           = (/ 4, 10, 10, 10, 10 /)
     207  integer, dimension(nfiles) , save :: flag_kz_max       = (/ 4, 10, 10, 10, 10 /)
     208  integer, dimension(nfiles) , save :: flag_SWnetOR      = (/ 10, 10, 2, 10, 10 /)
     209  integer, dimension(nfiles) , save :: flag_SWdownOR     = (/ 10, 10, 2, 10, 10 /)
     210  integer, dimension(nfiles) , save :: flag_LWdownOR     = (/ 10, 10, 2, 10, 10 /)
     211
     212  integer, dimension(nfiles) , save :: flag_snowl         = (/ 10, 1, 10, 10, 10 /)
     213  integer, dimension(nfiles) , save :: flag_cape_max      = (/ 10, 1, 10, 10, 10 /)
     214  integer, dimension(nfiles) , save :: flag_solldown      = (/ 10, 1, 10, 1, 10 /)
     215
     216  integer, dimension(nfiles) , save :: flag_dtsvdfo       = (/ 10, 10, 10, 1, 10 /)
     217  integer, dimension(nfiles) , save :: flag_dtsvdft       = (/ 10, 10, 10, 1, 10 /)
     218  integer, dimension(nfiles) , save :: flag_dtsvdfg       = (/ 10, 10, 10, 1, 10 /)
     219  integer, dimension(nfiles) , save :: flag_dtsvdfi       = (/ 10, 10, 10, 1, 10 /)
     220  integer, dimension(nfiles) , save :: flag_rugs          = (/ 10, 10, 10, 1, 1 /)
    221221
    222222!!!!!!!!!!!!!!!!!!!!!! 3D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    223   integer, dimension(nfiles) , save :: flag_lwcon        = (/ 2, 5, 10, 10 /)
    224   integer, dimension(nfiles) , save :: flag_iwcon        = (/ 2, 5, 10, 10 /)
    225   integer, dimension(nfiles) , save :: flag_temp         = (/ 2, 3, 4, 1 /)
    226   integer, dimension(nfiles) , save :: flag_theta         = (/ 2, 3, 4, 1 /)
    227   integer, dimension(nfiles) , save :: flag_ovap         = (/ 2, 3, 4, 1 /)
    228   integer, dimension(nfiles) , save :: flag_wvapp        = (/ 2, 10, 10, 10 /)
    229   integer, dimension(nfiles) , save :: flag_geop         = (/ 2, 3, 10, 1 /)
    230   integer, dimension(nfiles) , save :: flag_vitu         = (/ 2, 3, 4, 1 /)
    231   integer, dimension(nfiles) , save :: flag_vitv         = (/ 2, 3, 4, 1 /)
    232   integer, dimension(nfiles) , save :: flag_vitw         = (/ 2, 3, 10, 10 /)
    233   integer, dimension(nfiles) , save :: flag_pres         = (/ 2, 3, 10, 1 /)
    234   integer, dimension(nfiles) , save :: flag_rneb         = (/ 2, 5, 10, 10 /)
    235   integer, dimension(nfiles) , save :: flag_rnebcon      = (/ 2, 5, 10, 10 /)
    236   integer, dimension(nfiles) , save :: flag_rhum         = (/ 2, 10, 10, 10 /)
    237   integer, dimension(nfiles) , save :: flag_ozone        = (/ 2, 10, 10, 10 /)
    238   integer, dimension(nfiles) , save :: flag_upwd         = (/ 2, 10, 10, 10 /)
    239   integer, dimension(nfiles) , save :: flag_dtphy        = (/ 2, 10, 10, 10 /)
    240   integer, dimension(nfiles) , save :: flag_dqphy        = (/ 2, 10, 10, 10 /)
    241   integer, dimension(nfiles) , save :: flag_pr_con_l     = (/ 2, 10, 10, 10 /)
    242   integer, dimension(nfiles) , save :: flag_pr_con_i     = (/ 2, 10, 10, 10 /)
    243   integer, dimension(nfiles) , save :: flag_pr_lsc_l     = (/ 2, 10, 10, 10 /)
    244   integer, dimension(nfiles) , save :: flag_pr_lsc_i     = (/ 2, 10, 10, 10 /)
     223  integer, dimension(nfiles) , save :: flag_lwcon        = (/ 2, 5, 10, 10, 1 /)
     224  integer, dimension(nfiles) , save :: flag_iwcon        = (/ 2, 5, 10, 10, 10 /)
     225  integer, dimension(nfiles) , save :: flag_temp         = (/ 2, 3, 4, 1, 1 /)
     226  integer, dimension(nfiles) , save :: flag_theta         = (/ 2, 3, 4, 1, 1 /)
     227  integer, dimension(nfiles) , save :: flag_ovap         = (/ 2, 3, 4, 1, 1 /)
     228  integer, dimension(nfiles) , save :: flag_wvapp        = (/ 2, 10, 10, 10, 10 /)
     229  integer, dimension(nfiles) , save :: flag_geop         = (/ 2, 3, 10, 1, 1 /)
     230  integer, dimension(nfiles) , save :: flag_vitu         = (/ 2, 3, 4, 1, 1 /)
     231  integer, dimension(nfiles) , save :: flag_vitv         = (/ 2, 3, 4, 1, 1 /)
     232  integer, dimension(nfiles) , save :: flag_vitw         = (/ 2, 3, 10, 10, 1 /)
     233  integer, dimension(nfiles) , save :: flag_pres         = (/ 2, 3, 10, 1, 1 /)
     234  integer, dimension(nfiles) , save :: flag_rneb         = (/ 2, 5, 10, 10, 1 /)
     235  integer, dimension(nfiles) , save :: flag_rnebcon      = (/ 2, 5, 10, 10, 1 /)
     236  integer, dimension(nfiles) , save :: flag_rhum         = (/ 2, 10, 10, 10, 10 /)
     237  integer, dimension(nfiles) , save :: flag_ozone        = (/ 2, 10, 10, 10, 10 /)
     238  integer, dimension(nfiles) , save :: flag_upwd         = (/ 2, 10, 10, 10, 10 /)
     239  integer, dimension(nfiles) , save :: flag_dtphy        = (/ 2, 10, 10, 10, 1 /)
     240  integer, dimension(nfiles) , save :: flag_dqphy        = (/ 2, 10, 10, 10, 1 /)
     241  integer, dimension(nfiles) , save :: flag_pr_con_l     = (/ 2, 10, 10, 10, 10 /)
     242  integer, dimension(nfiles) , save :: flag_pr_con_i     = (/ 2, 10, 10, 10, 10 /)
     243  integer, dimension(nfiles) , save :: flag_pr_lsc_l     = (/ 2, 10, 10, 10, 10 /)
     244  integer, dimension(nfiles) , save :: flag_pr_lsc_i     = (/ 2, 10, 10, 10, 10 /)
    245245!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    246246
    247   integer, dimension(nfiles) , save :: flag_albe_sol     = (/ 3, 4, 10, 1 /)
    248   integer, dimension(nfiles) , save :: flag_ages_sol     = (/ 3, 10, 10, 10 /)
    249   integer, dimension(nfiles) , save :: flag_rugs_sol     = (/ 3, 4, 10, 1 /)
    250 
    251   integer, dimension(nfiles) , save :: flag_albs         = (/ 3, 10, 10, 1 /)
    252   integer, dimension(nfiles) , save :: flag_albslw       = (/ 3, 10, 10, 1 /)
    253 
    254   integer, dimension(nfiles) , save :: flag_clwcon       = (/ 4, 10, 10, 10 /)
    255   integer, dimension(nfiles) , save :: flag_Ma           = (/ 4, 10, 10, 10 /)
    256   integer, dimension(nfiles) , save :: flag_dnwd         = (/ 4, 10, 10, 10 /)
    257   integer, dimension(nfiles) , save :: flag_dnwd0        = (/ 4, 10, 10, 10 /)
    258   integer, dimension(nfiles) , save :: flag_dtdyn        = (/ 4, 10, 10, 10 /)
    259   integer, dimension(nfiles) , save :: flag_dqdyn        = (/ 4, 10, 10, 10 /)
    260   integer, dimension(nfiles) , save :: flag_dtcon        = (/ 4, 5, 10, 10 /)
    261   integer, dimension(nfiles) , save :: flag_ducon        = (/ 4, 10, 10, 10 /)
    262   integer, dimension(nfiles) , save :: flag_dqcon        = (/ 4, 5, 10, 10 /)
    263   integer, dimension(nfiles) , save :: flag_dtwak        = (/ 4, 5, 10, 10 /)
    264   integer, dimension(nfiles) , save :: flag_dqwak        = (/ 4, 5, 10, 10 /)
    265   integer, dimension(nfiles) , save :: flag_dtlsc        = (/ 4, 10, 10, 10 /)
    266   integer, dimension(nfiles) , save :: flag_dtlschr      = (/ 4, 10, 10, 10 /)
    267   integer, dimension(nfiles) , save :: flag_dqlsc        = (/ 4, 10, 10, 10 /)
    268   integer, dimension(nfiles) , save :: flag_dtvdf        = (/ 4, 10, 10, 1 /)
    269   integer, dimension(nfiles) , save :: flag_dqvdf        = (/ 4, 10, 10, 1 /)
    270   integer, dimension(nfiles) , save :: flag_dteva        = (/ 4, 10, 10, 10 /)
    271   integer, dimension(nfiles) , save :: flag_dqeva        = (/ 4, 10, 10, 10 /)
    272   integer, dimension(nfiles) , save :: flag_ptconv       = (/ 4, 10, 10, 10 /)
    273   integer, dimension(nfiles) , save :: flag_ratqs        = (/ 4, 10, 10, 10 /)
    274   integer, dimension(nfiles) , save :: flag_dtthe        = (/ 4, 10, 10, 10 /)
    275   integer, dimension(nfiles) , save :: flag_f_th        = (/ 4, 10, 10, 10 /)
    276   integer, dimension(nfiles) , save :: flag_e_th        = (/ 4, 10, 10, 10 /)
    277   integer, dimension(nfiles) , save :: flag_w_th        = (/ 4, 10, 10, 10 /)
    278   integer, dimension(nfiles) , save :: flag_lambda_th        = (/ 4, 10, 10, 10 /)
    279   integer, dimension(nfiles) , save :: flag_q_th        = (/ 4, 10, 10, 10 /)
    280   integer, dimension(nfiles) , save :: flag_a_th        = (/ 4, 10, 10, 10 /)
    281   integer, dimension(nfiles) , save :: flag_d_th        = (/ 4, 10, 10, 10 /)
    282   integer, dimension(nfiles) , save :: flag_f0_th        = (/ 4, 10, 10, 10 /)
    283   integer, dimension(nfiles) , save :: flag_zmax_th        = (/ 4, 10, 10, 10 /)
    284   integer, dimension(nfiles) , save :: flag_dqthe        = (/ 4, 10, 10, 10 /)
    285   integer, dimension(nfiles) , save :: flag_dtajs        = (/ 4, 10, 10, 10 /)
    286   integer, dimension(nfiles) , save :: flag_dqajs        = (/ 4, 10, 10, 10 /)
    287   integer, dimension(nfiles) , save :: flag_dtswr        = (/ 4, 10, 10, 10 /)
    288   integer, dimension(nfiles) , save :: flag_dtsw0        = (/ 4, 10, 10, 10 /)
    289   integer, dimension(nfiles) , save :: flag_dtlwr        = (/ 4, 10, 10, 10 /)
    290   integer, dimension(nfiles) , save :: flag_dtlw0        = (/ 4, 10, 10, 10 /)
    291   integer, dimension(nfiles) , save :: flag_dtec         = (/ 4, 10, 10, 10 /)
    292   integer, dimension(nfiles) , save :: flag_duvdf        = (/ 4, 10, 10, 10 /)
    293   integer, dimension(nfiles) , save :: flag_dvvdf        = (/ 4, 10, 10, 10 /)
    294   integer, dimension(nfiles) , save :: flag_duoro        = (/ 4, 10, 10, 10 /)
    295   integer, dimension(nfiles) , save :: flag_dvoro        = (/ 4, 10, 10, 10 /)
    296   integer, dimension(nfiles) , save :: flag_dulif        = (/ 4, 10, 10, 10 /)
    297   integer, dimension(nfiles) , save :: flag_dvlif        = (/ 4, 10, 10, 10 /)
    298   integer, dimension(nfiles) , save :: flag_trac         = (/ 4, 10, 10, 10 /)
     247  integer, dimension(nfiles) , save :: flag_albe_sol     = (/ 3, 4, 10, 1, 10 /)
     248  integer, dimension(nfiles) , save :: flag_ages_sol     = (/ 3, 10, 10, 10, 10 /)
     249  integer, dimension(nfiles) , save :: flag_rugs_sol     = (/ 3, 4, 10, 1, 10 /)
     250
     251  integer, dimension(nfiles) , save :: flag_albs         = (/ 3, 10, 10, 1, 10 /)
     252  integer, dimension(nfiles) , save :: flag_albslw       = (/ 3, 10, 10, 1, 10 /)
     253
     254  integer, dimension(nfiles) , save :: flag_clwcon       = (/ 4, 10, 10, 10, 10 /)
     255  integer, dimension(nfiles) , save :: flag_Ma           = (/ 4, 10, 10, 10, 10 /)
     256  integer, dimension(nfiles) , save :: flag_dnwd         = (/ 4, 10, 10, 10, 10 /)
     257  integer, dimension(nfiles) , save :: flag_dnwd0        = (/ 4, 10, 10, 10, 10 /)
     258  integer, dimension(nfiles) , save :: flag_dtdyn        = (/ 4, 10, 10, 10, 1 /)
     259  integer, dimension(nfiles) , save :: flag_dqdyn        = (/ 4, 10, 10, 10, 1 /)
     260  integer, dimension(nfiles) , save :: flag_dudyn        = (/ 4, 10, 10, 10, 1 /) !AXC
     261  integer, dimension(nfiles) , save :: flag_dvdyn        = (/ 4, 10, 10, 10, 1 /) !AXC
     262  integer, dimension(nfiles) , save :: flag_dtcon        = (/ 4, 5, 10, 10, 10 /)
     263  integer, dimension(nfiles) , save :: flag_ducon        = (/ 4, 10, 10, 10, 10 /)
     264  integer, dimension(nfiles) , save :: flag_dqcon        = (/ 4, 5, 10, 10, 10 /)
     265  integer, dimension(nfiles) , save :: flag_dtwak        = (/ 4, 5, 10, 10, 10 /)
     266  integer, dimension(nfiles) , save :: flag_dqwak        = (/ 4, 5, 10, 10, 10 /)
     267  integer, dimension(nfiles) , save :: flag_dtlsc        = (/ 4, 10, 10, 10, 10 /)
     268  integer, dimension(nfiles) , save :: flag_dtlschr      = (/ 4, 10, 10, 10, 10 /)
     269  integer, dimension(nfiles) , save :: flag_dqlsc        = (/ 4, 10, 10, 10, 10 /)
     270  integer, dimension(nfiles) , save :: flag_dtvdf        = (/ 4, 10, 10, 1, 10 /)
     271  integer, dimension(nfiles) , save :: flag_dqvdf        = (/ 4, 10, 10, 1, 10 /)
     272  integer, dimension(nfiles) , save :: flag_dteva        = (/ 4, 10, 10, 10, 10 /)
     273  integer, dimension(nfiles) , save :: flag_dqeva        = (/ 4, 10, 10, 10, 10 /)
     274  integer, dimension(nfiles) , save :: flag_ptconv       = (/ 4, 10, 10, 10, 10 /)
     275  integer, dimension(nfiles) , save :: flag_ratqs        = (/ 4, 10, 10, 10, 10 /)
     276  integer, dimension(nfiles) , save :: flag_dtthe        = (/ 4, 10, 10, 10, 10 /)
     277  integer, dimension(nfiles) , save :: flag_f_th        = (/ 4, 10, 10, 10, 10 /)
     278  integer, dimension(nfiles) , save :: flag_e_th        = (/ 4, 10, 10, 10, 10 /)
     279  integer, dimension(nfiles) , save :: flag_w_th        = (/ 4, 10, 10, 10, 10 /)
     280  integer, dimension(nfiles) , save :: flag_lambda_th        = (/ 4, 10, 10, 10, 10 /)
     281  integer, dimension(nfiles) , save :: flag_q_th        = (/ 4, 10, 10, 10, 10 /)
     282  integer, dimension(nfiles) , save :: flag_a_th        = (/ 4, 10, 10, 10, 10 /)
     283  integer, dimension(nfiles) , save :: flag_d_th        = (/ 4, 10, 10, 10, 10 /)
     284  integer, dimension(nfiles) , save :: flag_f0_th        = (/ 4, 10, 10, 10, 10 /)
     285  integer, dimension(nfiles) , save :: flag_zmax_th        = (/ 4, 10, 10, 10, 10 /)
     286  integer, dimension(nfiles) , save :: flag_dqthe        = (/ 4, 10, 10, 10, 1 /)
     287  integer, dimension(nfiles) , save :: flag_dtajs        = (/ 4, 10, 10, 10, 10 /)
     288  integer, dimension(nfiles) , save :: flag_dqajs        = (/ 4, 10, 10, 10, 10 /)
     289  integer, dimension(nfiles) , save :: flag_dtswr        = (/ 4, 10, 10, 10, 1 /)
     290  integer, dimension(nfiles) , save :: flag_dtsw0        = (/ 4, 10, 10, 10, 10 /)
     291  integer, dimension(nfiles) , save :: flag_dtlwr        = (/ 4, 10, 10, 10, 1 /)
     292  integer, dimension(nfiles) , save :: flag_dtlw0        = (/ 4, 10, 10, 10, 10 /)
     293  integer, dimension(nfiles) , save :: flag_dtec         = (/ 4, 10, 10, 10, 10 /)
     294  integer, dimension(nfiles) , save :: flag_duvdf        = (/ 4, 10, 10, 10, 10 /)
     295  integer, dimension(nfiles) , save :: flag_dvvdf        = (/ 4, 10, 10, 10, 10 /)
     296  integer, dimension(nfiles) , save :: flag_duoro        = (/ 4, 10, 10, 10, 10 /)
     297  integer, dimension(nfiles) , save :: flag_dvoro        = (/ 4, 10, 10, 10, 10 /)
     298  integer, dimension(nfiles) , save :: flag_dulif        = (/ 4, 10, 10, 10, 10 /)
     299  integer, dimension(nfiles) , save :: flag_dvlif        = (/ 4, 10, 10, 10, 10 /)
     300  integer, dimension(nfiles) , save :: flag_trac         = (/ 4, 10, 10, 10, 10 /)
    299301
    300302    CONTAINS
     
    307309  SUBROUTINE phys_output_open(jjmp1,nqmax,nlevSTD,clevSTD,nbteta, &
    308310                              ctetaSTD,dtime, presnivs, ok_veget, &
    309                               ocean, iflag_pbl,ok_mensuel,ok_journe, & 
    310                               ok_hf,ok_instan, nid_fil)
     311                              ocean, iflag_pbl,ok_mensuel,ok_journe, &
     312                              ok_hf,ok_instan,ok_LES, nid_fil)   
    311313
    312314  USE iophy
     
    326328  integer                               :: nbteta, nlevSTD, radpas
    327329  logical                               :: ok_mensuel, ok_journe, ok_hf, ok_instan
     330  logical                               :: ok_LES
    328331  real                                  :: dtime
    329332  integer                               :: idayref
     
    345348  integer                               :: imin_ins, imax_ins
    346349  integer                               :: jmin_ins, jmax_ins
     350  integer, dimension(nfiles)            :: lvlmax_reg
     351
     352   lvlmax_reg = (/ klev, klev, klev, klev, 17 /)
    347353
    348354   name_files(1) = 'histmth'
     
    350356   name_files(3) = 'histhf'
    351357   name_files(4) = 'histins'
     358   name_files(5) = 'histLES'
    352359
    353360   type_ecri(1) = 'ave(X)'
     
    355362   type_ecri(3) = 'ave(X)'
    356363   type_ecri(4) = 'inst(X)'
     364   type_ecri(5) = 'ave(X)'
    357365
    358366   clef_files(1) = ok_mensuel
     
    360368   clef_files(3) = ok_hf
    361369   clef_files(4) = ok_instan
     370   clef_files(5) = ok_LES
    362371
    363372   lev_files(1) = lev_histmth
     
    365374   lev_files(3) = lev_histhf
    366375   lev_files(4) = 1
     376   lev_files(5) = 1
    367377
    368378   ecrit_files(1) = ecrit_mth
     
    370380   ecrit_files(3) = ecrit_hf
    371381   ecrit_files(4) = ecrit_ins
     382   ecrit_files(5) = ecrit_LES
    372383 
    373384!!!!!!!!!!!!!!!!!!!!!!! Boucle sur les fichiers !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    389400!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    390401     if (ok_reglim(iff)) then
     402
     403        klev = lvlmax_reg(iff)
    391404
    392405        imin_ins=1
     
    675688 CALL histdef3d(iff,flag_dtdyn,"dtdyn","Dynamics dT","K/s")
    676689 CALL histdef3d(iff,flag_dqdyn,"dqdyn","Dynamics dQ", "(kg/kg)/s")
     690 CALL histdef3d(iff,flag_dudyn,"dudyn","Dynamics dU","m/s2")
     691 CALL histdef3d(iff,flag_dvdyn,"dvdyn","Dynamics dV","m/s2")
    677692 CALL histdef3d(iff,flag_dtcon,"dtcon","Convection dT","K/s")
    678693 CALL histdef3d(iff,flag_ducon,"ducon","Convection du","m/s2")
     
    742757
    743758         ENDDO !
     759      klev = lvlmax_reg(1)
     760
    744761      end subroutine phys_output_open
    745762
  • LMDZ4/trunk/libf/phylmd/phys_output_write.h

    r1045 r1054  
    915915       ENDIF
    916916
     917       IF (flag_dudyn(iff)<=lev_files(iff)) THEN
     918      CALL histwrite_phy(nid_files(iff),"dudyn",itau_w,d_u_dyn)
     919       ENDIF                                                   
     920
     921       IF (flag_dvdyn(iff)<=lev_files(iff)) THEN                 
     922      CALL histwrite_phy(nid_files(iff),"dvdyn",itau_w,d_v_dyn) 
     923       ENDIF                                                     
     924
    917925       IF (flag_dtcon(iff)<=lev_files(iff)) THEN
    918926      zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys
  • LMDZ4/trunk/libf/phylmd/phys_state_var_mod.F90

    r970 r1054  
    4545      REAL, ALLOCATABLE, SAVE :: t_ancien(:,:), q_ancien(:,:)
    4646!$OMP THREADPRIVATE(t_ancien, q_ancien)
     47      REAL, ALLOCATABLE, SAVE :: u_ancien(:,:), v_ancien(:,:)
     48!$OMP THREADPRIVATE(u_ancien, v_ancien)
    4749      LOGICAL, SAVE :: ancien_ok
    4850!$OMP THREADPRIVATE(ancien_ok)
     
    325327      ALLOCATE(rugoro(klon))
    326328      ALLOCATE(t_ancien(klon,klev), q_ancien(klon,klev))
     329      ALLOCATE(u_ancien(klon,klev), v_ancien(klon,klev))
    327330      ALLOCATE(clwcon(klon,klev),rnebcon(klon,klev))
    328331      ALLOCATE(ratqs(klon,klev))
     
    437440      deallocate(zthe, zpic, zval)
    438441      deallocate(rugoro, t_ancien, q_ancien, clwcon, rnebcon)
     442      deallocate(        u_ancien, v_ancien                 )
    439443      deallocate(ratqs, pbl_tke)
    440444      deallocate(zmax0, f0)
  • LMDZ4/trunk/libf/phylmd/physiq.F

    r1045 r1054  
    153153c$OMP THREADPRIVATE(ok_instan)
    154154c
     155      LOGICAL ok_LES ! sortir le fichier LES
     156      save ok_LES                           
     157c$OMP THREADPRIVATE(ok_LES)                 
     158c
    155159      LOGICAL ok_region ! sortir le fichier regional
    156160      PARAMETER (ok_region=.FALSE.)
     
    12411245         call conf_phys(ok_journe, ok_mensuel,
    12421246     .                  ok_instan, ok_hf,
     1247     .                  ok_LES,
    12431248     .                  solarlong0,seuil_inversion,
    12441249     .                  fact_cldcon, facttemps,ok_newmicro,iflag_radia,
     
    14761481         ecrit_tra = ecrit_tra * un_jour
    14771482         ecrit_ISCCP = ecrit_ISCCP * un_jour
     1483         ecrit_LES = ecrit_LES * un_jour
    14781484c
    14791485         PRINT*,'physiq ecrit_ hf day mth reg tra ISCCP hf2mth',
     
    15211527     &                        ctetaSTD,dtime,presnivs,ok_veget,
    15221528     &                        type_ocean,iflag_pbl,ok_mensuel,ok_journe,
    1523      &                        ok_hf,ok_instan,nid_files)
     1529     &                        ok_hf,ok_instan,ok_LES,nid_files)
    15241530c$OMP END MASTER
    15251531c$OMP BARRIER
     
    16971703         DO k = 1, klev
    16981704         DO i = 1, klon
     1705            d_u_dyn(i,k) = (u_seri(i,k)-u_ancien(i,k))/dtime
     1706            d_v_dyn(i,k) = (v_seri(i,k)-v_ancien(i,k))/dtime
    16991707            d_t_dyn(i,k) = (t_seri(i,k)-t_ancien(i,k))/dtime
    17001708            d_q_dyn(i,k) = (q_seri(i,k)-q_ancien(i,k))/dtime
     
    17041712         DO k = 1, klev
    17051713         DO i = 1, klon
     1714            d_u_dyn(i,k) = 0.0
     1715            d_v_dyn(i,k) = 0.0
    17061716            d_t_dyn(i,k) = 0.0
    17071717            d_q_dyn(i,k) = 0.0
     
    33873397      DO k = 1, klev
    33883398      DO i = 1, klon
     3399         u_ancien(i,k) = u_seri(i,k)
     3400         v_ancien(i,k) = v_seri(i,k)
    33893401         t_ancien(i,k) = t_seri(i,k)
    33903402         q_ancien(i,k) = q_seri(i,k)
Note: See TracChangeset for help on using the changeset viewer.