- Timestamp:
- 2017-04-29T17:24:54+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/ZDF/zdf_oce.F90
r7953 r7990 16 16 PUBLIC zdf_oce_alloc ! Called in nemogcm.F90 17 17 18 ! !!* namelist namzdf: vertical diffusion * 19 !!gm 18 ! !!* namelist namzdf: vertical physics * 20 19 ! ! vertical closure scheme flags 21 20 LOGICAL , PUBLIC :: ln_zdfcst !: constant coefficients … … 23 22 LOGICAL , PUBLIC :: ln_zdftke !: Turbulent Kinetic Energy closure 24 23 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 34 25 LOGICAL , PUBLIC :: ln_zdfevd !: convection: enhanced vertical diffusion flag 35 26 INTEGER , PUBLIC :: nn_evdm !: =0/1 flag to apply enhanced avm or not … … 38 29 INTEGER , PUBLIC :: nn_npc !: non penetrative convective scheme call frequency 39 30 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) 42 41 ! ! coefficients 43 42 REAL(wp), PUBLIC :: rn_avm0 !: vertical eddy viscosity (m2/s) … … 47 46 48 47 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] 51 53 REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:) :: avmb , avtb !: background profile of avm and avt 52 54 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 60 57 61 58 !!---------------------------------------------------------------------- … … 71 68 !!---------------------------------------------------------------------- 72 69 ! 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 ) 81 75 ! 82 76 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.