- Timestamp:
- 2017-12-13T15:58:53+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdf_oce.F90
r7646 r9019 4 4 !! Ocean physics : define vertical mixing variables 5 5 !!===================================================================== 6 !! history : 1.0 ! 2002-06 (G. Madec) Original code 7 !! 3.2 ! 2009-07 (G.Madec) addition of avm 6 !! history : 1.0 ! 2002-06 (G. Madec) Original code 7 !! 3.2 ! 2009-07 (G. Madec) addition of avm 8 !! 4.0 ! 2017-05 (G. Madec) avm and drag coef. defined at t-point 8 9 !!---------------------------------------------------------------------- 9 10 USE par_oce ! ocean parameters … … 16 17 PUBLIC zdf_oce_alloc ! Called in nemogcm.F90 17 18 18 #if defined key_zdfcst 19 LOGICAL, PARAMETER, PUBLIC :: lk_zdfcst = .TRUE. !: constant vertical mixing flag 20 #else 21 LOGICAL, PARAMETER, PUBLIC :: lk_zdfcst = .FALSE. !: constant vertical mixing flag 22 #endif 23 24 ! !!* namelist namzdf: vertical diffusion * 19 ! !!* namelist namzdf: vertical physics * 20 ! ! vertical closure scheme flags 21 LOGICAL , PUBLIC :: ln_zdfcst !: constant coefficients 22 LOGICAL , PUBLIC :: ln_zdfric !: Richardson depend coefficients 23 LOGICAL , PUBLIC :: ln_zdftke !: Turbulent Kinetic Energy closure 24 LOGICAL , PUBLIC :: ln_zdfgls !: Generic Length Scale closure 25 LOGICAL , PUBLIC :: ln_zdfosm !: OSMOSIS BL closure 26 ! ! convection 27 LOGICAL , PUBLIC :: ln_zdfevd !: convection: enhanced vertical diffusion flag 28 INTEGER , PUBLIC :: nn_evdm !: =0/1 flag to apply enhanced avm or not 29 REAL(wp), PUBLIC :: rn_evd !: vertical eddy coeff. for enhanced vert. diff. (m2/s) 30 LOGICAL , PUBLIC :: ln_zdfnpc !: convection: non-penetrative convection flag 31 INTEGER , PUBLIC :: nn_npc !: non penetrative convective scheme call frequency 32 INTEGER , PUBLIC :: nn_npcp !: non penetrative convective scheme print frequency 33 ! ! double diffusion 34 LOGICAL , PUBLIC :: ln_zdfddm !: double diffusive mixing flag 35 REAL(wp), PUBLIC :: rn_avts !: maximum value of avs for salt fingering 36 REAL(wp), PUBLIC :: rn_hsbfr !: heat/salt buoyancy flux ratio 37 ! ! gravity wave-induced vertical mixing 38 LOGICAL , PUBLIC :: ln_zdfswm !: surface wave-induced mixing flag 39 LOGICAL , PUBLIC :: ln_zdfiwm !: internal wave-induced mixing flag 40 ! ! coefficients 25 41 REAL(wp), PUBLIC :: rn_avm0 !: vertical eddy viscosity (m2/s) 26 42 REAL(wp), PUBLIC :: rn_avt0 !: vertical eddy diffusivity (m2/s) 27 43 INTEGER , PUBLIC :: nn_avb !: constant or profile background on avt (=0/1) 28 INTEGER , PUBLIC :: nn_havtb !: horizontal shape or not for avtb (=0/1) 29 LOGICAL , PUBLIC :: ln_zdfexp !: explicit vertical diffusion scheme flag 30 INTEGER , PUBLIC :: nn_zdfexp !: number of sub-time step (explicit time stepping) 31 LOGICAL , PUBLIC :: ln_zdfevd !: convection: enhanced vertical diffusion flag 32 INTEGER , PUBLIC :: nn_evdm !: =0/1 flag to apply enhanced avm or not 33 REAL(wp), PUBLIC :: rn_avevd !: vertical eddy coeff. for enhanced vert. diff. (m2/s) 34 LOGICAL , PUBLIC :: ln_zdfnpc !: convection: non-penetrative convection flag 35 INTEGER , PUBLIC :: nn_npc !: non penetrative convective scheme call frequency 36 INTEGER , PUBLIC :: nn_npcp !: non penetrative convective scheme print frequency 37 LOGICAL , PUBLIC :: ln_zdfqiao !: Enhanced wave vertical mixing Qiao(2010) formulation flag 44 INTEGER , PUBLIC :: nn_havtb !: horizontal shape or not for avtb (=0/1) ! ! convection 38 45 39 46 40 REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:) :: avmb , avtb !: background profile of avm and avt 41 REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:) :: avtb_2d !: horizontal shape of background Kz profile 42 REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:) :: bfrua, bfrva !: Bottom friction coefficients set in zdfbfr 43 REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:) :: tfrua, tfrva !: top friction coefficients set in zdfbfr 44 REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: avmu , avmv !: vertical viscosity coef at uw- & vw-pts [m2/s] 45 REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: avm , avt !: vertical viscosity & diffusivity coef at w-pt [m2/s] 46 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avt_k , avm_k ! not enhanced Kz 47 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avmu_k, avmv_k ! not enhanced Kz 48 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: en !: now turbulent kinetic energy [m2/s2] 47 REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: avm, avt, avs !: vertical mixing coefficients (w-point) [m2/s] 48 REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: avm_k , avt_k !: Kz computed by turbulent closure alone [m2/s] 49 REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: en !: now turbulent kinetic energy [m2/s2] 50 REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:) :: avmb , avtb !: background profile of avm and avt [m2/s] 51 REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:) :: avtb_2d !: horizontal shape of background Kz profile [-] 49 52 50 53 !!---------------------------------------------------------------------- 51 !! NEMO/OPA 4.0 , NEMO Consortium (201 1)54 !! NEMO/OPA 4.0 , NEMO Consortium (2017) 52 55 !! $Id$ 53 56 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 60 63 !!---------------------------------------------------------------------- 61 64 ! 62 ALLOCATE(avmb(jpk) , bfrua(jpi,jpj) , & 63 & avtb(jpk) , bfrva(jpi,jpj) , avtb_2d(jpi,jpj) , & 64 & tfrua(jpi, jpj), tfrva(jpi, jpj) , & 65 & avmu (jpi,jpj,jpk), avm (jpi,jpj,jpk) , & 66 & avmv (jpi,jpj,jpk), avt (jpi,jpj,jpk) , & 67 & avt_k (jpi,jpj,jpk), avm_k (jpi,jpj,jpk) , & 68 & avmu_k(jpi,jpj,jpk), avmv_k(jpi,jpj,jpk) , & 69 & en (jpi,jpj,jpk), STAT = zdf_oce_alloc ) 65 ALLOCATE( avm (jpi,jpj,jpk) , avm_k(jpi,jpj,jpk) , avs(jpi,jpj,jpk) , & 66 & avt (jpi,jpj,jpk) , avt_k(jpi,jpj,jpk) , en (jpi,jpj,jpk) , & 67 & avmb(jpk) , avtb(jpk) , avtb_2d(jpi,jpj) , STAT = zdf_oce_alloc ) 70 68 ! 71 69 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.