New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 7990 for branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/ZDF/zdf_oce.F90 – NEMO

Ignore:
Timestamp:
2017-04-29T17:24:54+02:00 (7 years ago)
Author:
gm
Message:

#1880 (HPC-09): OPA remove avmu, avmv from zdf modules + move CALL tke(gls)_rst & gls_rst in zdftke(gls) + rename zdftmx and zdfqiao

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/ZDF/zdf_oce.F90

    r7953 r7990  
    1616   PUBLIC  zdf_oce_alloc    ! Called in nemogcm.F90 
    1717 
    18    !                                 !!* namelist namzdf: vertical diffusion * 
    19 !!gm 
     18   !                            !!* namelist namzdf: vertical physics * 
    2019   !                             ! vertical closure scheme flags 
    2120   LOGICAL , PUBLIC ::   ln_zdfcst   !: constant coefficients 
     
    2322   LOGICAL , PUBLIC ::   ln_zdftke   !: Turbulent Kinetic Energy closure 
    2423   LOGICAL , PUBLIC ::   ln_zdfgls   !: Generic Length Sclare closure 
    25    !                             ! tidal induced mixing    
    26    LOGICAL , PUBLIC ::   ln_zdftmx   !: tidal mixing parameterization flag 
    27    !                             ! double diffusion 
    28    LOGICAL , PUBLIC ::   ln_zdfddm   !: double diffusive mixing flag 
    29    REAL(wp), PUBLIC ::      rn_avts     !: maximum value of avs for salt fingering 
    30    REAL(wp), PUBLIC ::      rn_hsbfr    !: heat/salt buoyancy flux ratio 
    31 !!gm 
    32    LOGICAL , PUBLIC ::   ln_zdfexp   !: explicit vertical diffusion scheme flag 
    33    INTEGER , PUBLIC ::   nn_zdfexp   !: number of sub-time step (explicit time stepping) 
     24   !                             ! convection 
    3425   LOGICAL , PUBLIC ::   ln_zdfevd   !: convection: enhanced vertical diffusion flag 
    3526   INTEGER , PUBLIC ::      nn_evdm     !: =0/1 flag to apply enhanced avm or not 
     
    3829   INTEGER , PUBLIC ::      nn_npc      !: non penetrative convective scheme call  frequency 
    3930   INTEGER , PUBLIC ::      nn_npcp     !: non penetrative convective scheme print frequency 
    40    !                             ! Surface wave-induced mixing 
    41    LOGICAL , PUBLIC ::   ln_zdfqiao  !: Enhanced wave vertical mixing Qiao(2010) formulation flag 
     31   !                             ! double diffusion 
     32   LOGICAL , PUBLIC ::   ln_zdfddm   !: double diffusive mixing flag 
     33   REAL(wp), PUBLIC ::      rn_avts     !: maximum value of avs for salt fingering 
     34   REAL(wp), PUBLIC ::      rn_hsbfr    !: heat/salt buoyancy flux ratio 
     35   !                             ! gravity wave-induced vertical mixing 
     36   LOGICAL , PUBLIC ::   ln_zdfswm   !: surface  wave-induced mixing flag 
     37   LOGICAL , PUBLIC ::   ln_zdfiwm   !: internal wave-induced mixing flag 
     38   !                             ! time-stepping 
     39   LOGICAL , PUBLIC ::   ln_zdfexp   !: explicit vertical diffusion scheme flag 
     40   INTEGER , PUBLIC ::      nn_zdfexp   !: number of sub-time step (explicit time stepping) 
    4241   !                             ! coefficients  
    4342   REAL(wp), PUBLIC ::   rn_avm0     !: vertical eddy viscosity (m2/s) 
     
    4746 
    4847 
    49    REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:,:) ::   avt  , avs     !: vertical eddy diffusivity coef at w-pt [m2/s] 
    50  
     48   REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:,:) ::   avt  , avs     !: vertical T & S  diffusivity coef at w-pt [m2/s] 
     49   REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:,:) ::   avm            !: vertical momentum viscosity coef at w-pt [m2/s] 
     50   REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:,:) ::   avmu , avmv    !: vertical viscosity coef at uw- & vw-pts  [m2/s] 
     51   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   avt_k , avm_k  !: avt, avs computed by turbulent closure alone 
     52   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   en             !: now turbulent kinetic energy   [m2/s2] 
    5153   REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:)     ::   avmb , avtb    !: background profile of avm and avt 
    5254   REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:)   ::   avtb_2d        !: horizontal shape of background Kz profile 
    53    REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:)   ::   bfrua, bfrva   !: Bottom friction coefficients set in zdfbfr 
    54    REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:)   ::   tfrua, tfrva   !: top friction coefficients set in zdfbfr 
    55    REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:,:) ::   avmu , avmv    !: vertical viscosity coef at uw- & vw-pts       [m2/s] 
    56    REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:,:) ::   avm            !: vertical viscosity & diffusivity coef at w-pt [m2/s] 
    57    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   avt_k , avm_k  ! not enhanced Kz 
    58    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   avmu_k, avmv_k ! not enhanced Kz 
    59    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   en              !: now turbulent kinetic energy   [m2/s2] 
     55   REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:)   ::   bfrua, bfrva   !: bottom friction coefficients 
     56   REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:)   ::   tfrua, tfrva   !: top    friction coefficients 
    6057 
    6158   !!---------------------------------------------------------------------- 
     
    7168      !!---------------------------------------------------------------------- 
    7269      ! 
    73       ALLOCATE(avmb(jpk) , bfrua(jpi,jpj) ,                         & 
    74          &     avtb(jpk) , bfrva(jpi,jpj) , avtb_2d(jpi,jpj) ,      & 
    75          &     tfrua(jpi, jpj), tfrva(jpi, jpj)              ,      & 
    76          &     avmu  (jpi,jpj,jpk), avm   (jpi,jpj,jpk)      ,      & 
    77          &     avmv  (jpi,jpj,jpk), avt   (jpi,jpj,jpk)      , avs   (jpi,jpj,jpk),          & 
    78          &     avt_k (jpi,jpj,jpk), avm_k (jpi,jpj,jpk)      ,      &  
    79          &     avmu_k(jpi,jpj,jpk), avmv_k(jpi,jpj,jpk)      ,      & 
    80          &     en    (jpi,jpj,jpk), STAT = zdf_oce_alloc ) 
     70      ALLOCATE( avm  (jpi,jpj,jpk) , avt  (jpi,jpj,jpk) , avs(jpi,jpj,jpk) ,        & 
     71         &      avm_k(jpi,jpj,jpk) , avt_k(jpi,jpj,jpk) , en (jpi,jpj,jpk) ,        &  
     72         &      avmb(jpk) , bfrua(jpi,jpj) , tfrua(jpi, jpj) ,                      & 
     73         &      avtb(jpk) , bfrva(jpi,jpj) , tfrva(jpi, jpj) , avtb_2d(jpi,jpj) ,   & 
     74         &      avmu(jpi,jpj,jpk), avmv(jpi,jpj,jpk) ,  STAT = zdf_oce_alloc ) 
    8175         ! 
    8276      IF( zdf_oce_alloc /= 0 )   CALL ctl_warn('zdf_oce_alloc: failed to allocate arrays') 
Note: See TracChangeset for help on using the changeset viewer.