[3] | 1 | MODULE zdf_oce |
---|
| 2 | !!====================================================================== |
---|
| 3 | !! *** MODULE zdf_oce *** |
---|
| 4 | !! Ocean physics : define vertical mixing variables |
---|
| 5 | !!===================================================================== |
---|
[1492] | 6 | !! history : 1.0 ! 2002-06 (G. Madec) Original code |
---|
| 7 | !! 3.2 ! 2009-07 (G.Madec) addition of avm |
---|
[3] | 8 | !!---------------------------------------------------------------------- |
---|
[2715] | 9 | USE par_oce ! ocean parameters |
---|
| 10 | USE in_out_manager ! I/O manager |
---|
| 11 | USE lib_mpp ! MPP library |
---|
[3] | 12 | |
---|
| 13 | IMPLICIT NONE |
---|
| 14 | PRIVATE |
---|
| 15 | |
---|
[2715] | 16 | PUBLIC zdf_oce_alloc ! Called in nemogcm.F90 |
---|
| 17 | |
---|
[5836] | 18 | #if defined key_zdfcst |
---|
[1492] | 19 | LOGICAL, PARAMETER, PUBLIC :: lk_zdfcst = .TRUE. !: constant vertical mixing flag |
---|
[3] | 20 | #else |
---|
[1492] | 21 | LOGICAL, PARAMETER, PUBLIC :: lk_zdfcst = .FALSE. !: constant vertical mixing flag |
---|
[3] | 22 | #endif |
---|
| 23 | |
---|
[4147] | 24 | ! !!* namelist namzdf: vertical diffusion * |
---|
[7931] | 25 | !!gm |
---|
| 26 | ! ! vertical closure scheme flags |
---|
| 27 | LOGICAL , PUBLIC :: ln_zdfcst !: constant coefficients |
---|
| 28 | LOGICAL , PUBLIC :: ln_zdfric !: Richardson depend coefficients |
---|
| 29 | LOGICAL , PUBLIC :: ln_zdftke !: Turbulent Kinetic Energy closure |
---|
| 30 | LOGICAL , PUBLIC :: ln_zdfgls !: Generic Length Sclare closure |
---|
| 31 | ! ! tidal induced mixing |
---|
| 32 | LOGICAL , PUBLIC :: ln_zdftmx !: tidal mixing parameterization flag |
---|
| 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 | !!gm |
---|
[4147] | 38 | LOGICAL , PUBLIC :: ln_zdfexp !: explicit vertical diffusion scheme flag |
---|
| 39 | INTEGER , PUBLIC :: nn_zdfexp !: number of sub-time step (explicit time stepping) |
---|
| 40 | LOGICAL , PUBLIC :: ln_zdfevd !: convection: enhanced vertical diffusion flag |
---|
[7931] | 41 | INTEGER , PUBLIC :: nn_evdm !: =0/1 flag to apply enhanced avm or not |
---|
| 42 | REAL(wp), PUBLIC :: rn_evd !: vertical eddy coeff. for enhanced vert. diff. (m2/s) |
---|
[4147] | 43 | LOGICAL , PUBLIC :: ln_zdfnpc !: convection: non-penetrative convection flag |
---|
[7931] | 44 | INTEGER , PUBLIC :: nn_npc !: non penetrative convective scheme call frequency |
---|
| 45 | INTEGER , PUBLIC :: nn_npcp !: non penetrative convective scheme print frequency |
---|
| 46 | ! ! Surface wave-induced mixing |
---|
[7646] | 47 | LOGICAL , PUBLIC :: ln_zdfqiao !: Enhanced wave vertical mixing Qiao(2010) formulation flag |
---|
[7931] | 48 | ! ! coefficients |
---|
| 49 | REAL(wp), PUBLIC :: rn_avm0 !: vertical eddy viscosity (m2/s) |
---|
| 50 | REAL(wp), PUBLIC :: rn_avt0 !: vertical eddy diffusivity (m2/s) |
---|
| 51 | INTEGER , PUBLIC :: nn_avb !: constant or profile background on avt (=0/1) |
---|
| 52 | INTEGER , PUBLIC :: nn_havtb !: horizontal shape or not for avtb (=0/1) ! ! convection |
---|
[3] | 53 | |
---|
[1537] | 54 | |
---|
[7931] | 55 | REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: avt , avs !: vertical eddy diffusivity coef at w-pt [m2/s] |
---|
| 56 | |
---|
[2715] | 57 | REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:) :: avmb , avtb !: background profile of avm and avt |
---|
| 58 | REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:) :: avtb_2d !: horizontal shape of background Kz profile |
---|
| 59 | REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:) :: bfrua, bfrva !: Bottom friction coefficients set in zdfbfr |
---|
[4990] | 60 | REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:) :: tfrua, tfrva !: top friction coefficients set in zdfbfr |
---|
[2715] | 61 | REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: avmu , avmv !: vertical viscosity coef at uw- & vw-pts [m2/s] |
---|
[7931] | 62 | REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: avm !: vertical viscosity & diffusivity coef at w-pt [m2/s] |
---|
[5656] | 63 | REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avt_k , avm_k ! not enhanced Kz |
---|
| 64 | REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avmu_k, avmv_k ! not enhanced Kz |
---|
[5836] | 65 | REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: en !: now turbulent kinetic energy [m2/s2] |
---|
[5656] | 66 | |
---|
[1492] | 67 | !!---------------------------------------------------------------------- |
---|
[2715] | 68 | !! NEMO/OPA 4.0 , NEMO Consortium (2011) |
---|
[1492] | 69 | !! $Id$ |
---|
[2715] | 70 | !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) |
---|
| 71 | !!---------------------------------------------------------------------- |
---|
| 72 | CONTAINS |
---|
| 73 | |
---|
| 74 | INTEGER FUNCTION zdf_oce_alloc() |
---|
| 75 | !!---------------------------------------------------------------------- |
---|
| 76 | !! *** FUNCTION zdf_oce_alloc *** |
---|
| 77 | !!---------------------------------------------------------------------- |
---|
| 78 | ! |
---|
| 79 | ALLOCATE(avmb(jpk) , bfrua(jpi,jpj) , & |
---|
| 80 | & avtb(jpk) , bfrva(jpi,jpj) , avtb_2d(jpi,jpj) , & |
---|
[4990] | 81 | & tfrua(jpi, jpj), tfrva(jpi, jpj) , & |
---|
[5836] | 82 | & avmu (jpi,jpj,jpk), avm (jpi,jpj,jpk) , & |
---|
[7931] | 83 | & avmv (jpi,jpj,jpk), avt (jpi,jpj,jpk) , avs (jpi,jpj,jpk), & |
---|
[5836] | 84 | & avt_k (jpi,jpj,jpk), avm_k (jpi,jpj,jpk) , & |
---|
| 85 | & avmu_k(jpi,jpj,jpk), avmv_k(jpi,jpj,jpk) , & |
---|
[5656] | 86 | & en (jpi,jpj,jpk), STAT = zdf_oce_alloc ) |
---|
[2715] | 87 | ! |
---|
| 88 | IF( zdf_oce_alloc /= 0 ) CALL ctl_warn('zdf_oce_alloc: failed to allocate arrays') |
---|
| 89 | ! |
---|
| 90 | END FUNCTION zdf_oce_alloc |
---|
| 91 | |
---|
[3] | 92 | !!====================================================================== |
---|
| 93 | END MODULE zdf_oce |
---|