INTERFACE:
module kppDESCRIPTION:
This implentation of the KPP turbulence parameterisation is based on the publications of Large et al. (1994) and Durksi et al. (2004). The general expression for the turbulent fluxes used in the KPP model is identical to that suggested in (43). It assumes that the turbulent flux is the sum of a down-gradient flux and a non-local contribution,
In the notation of the KPP model, the non-local flux is expressed as
Continuity of the boundary and interior diffusivites is obviously insured, see (212), if we require that
A condition for the continuity of the derivatives of
and
can be obtained by carrying out the derivative with respect to
of (212), and
setting it equal to the
-derivative of
. For the surface layer
this results in
The derivative of
appearing in (217) can be evaluted with
the help of the formulae given in section 4.8.6. As discussed in section 4.8.6,
at
, the derivative of
is different from zero only for stably
stratified flows. Then, the non-dimensional function
appearing
in (225) is given by (227), and it is easy to show that
With the help of (219), one can re-write (217) as
The non-local transport term defined in (211) is computed as described in Large et al. (1994), if the pre-processor macro NONLOCAL is defined. Otherwise, non-local transport is ignored.
The position of the surface boundary layer depth,
, corresponds
to the position where the bulk Richardson number,
To check the boundary layer limit according to the condition
Finally, provided clip_mld=.true. in kpp.nml, the boundary layer is cut if it exceeds the Ekman or the Monin-Obukhov length scale, see Large et al. (1994).
USES:
use turbulence, only: num,nuh,nus use turbulence, only: gamu,gamv,gamh,gams use turbulence, only: Rig use turbulence, only: kappa #ifdef EXTRA_OUTPUT use turbulence, only: turb1,turb2,turb3,turb4,turb5 #endif !use eqstate IMPLICIT NONE privatePUBLIC MEMBER FUNCTIONS:
public init_kpp, do_kpp, clean_kppPUBLIC DATA MEMBERS:
z-position of surface boundary layer depth REALTYPE, public :: zsbl z-position of bottom boundary layer depth REALTYPE, public :: zbblDEFINED PARAMETERS:
non-dimensional extent of the surface layer (epsilon=0.1)
REALTYPE, parameter :: epsilon = 0.1
critical gradient Richardson number below which turbulent
mixing occurs (Ri0=0.7)
REALTYPE, parameter :: Ri0 = 0.7
value of double-diffusive density ratio where mixing goes
to zero in salt fingering (Rrho0=1.9)
REALTYPE, parameter :: Rrho0 = 1.9
buoancy frequency (1/s2) limit for convection (bvfcon=-2.0E-5)
REALTYPE, parameter :: bvfcon = -2.0E-5
scaling factor for double diffusion of temperature in salt
fingering case (fdd=0.7)
REALTYPE, parameter :: fdd = 0.7
maximum interior convective viscosity and diffusivity
due to shear instability (nu0c=0.01)
REALTYPE, parameter :: nu0c = 0.01
maximum interior viscosity (m2/s) due to shear
instability (nu0m=10.0E-4)
REALTYPE, parameter :: nu0m = 10.0E-4
maximum interior diffusivity (m2/s) due to shear
instability (nu0s=10.0E-4)
REALTYPE, parameter :: nu0s = 10.0E-4
scaling factor for double diffusion in salt fingering (nu=1.5E-6)
REALTYPE, parameter :: nu = 1.5E-6
scaling factor for double diffusion in salt fingering (nuf=10.0E-4)
REALTYPE, parameter :: nuf = 10.0E-4
interior viscosity (m2/s) due to wave breaking (nuwm=1.0E-5)
REALTYPE, parameter :: nuwm = 1.0E-5
interior diffusivity (m2/s) due to wave breaking (nuwm=1.0E-6)
REALTYPE, parameter :: nuws = 1.0E-6
double diffusion constant for salinity in diffusive
convection case (sdd1=0.15)
REALTYPE, parameter :: sdd1 = 0.15
double diffusion constant for salinity in diffusive convection
(sdd2=1.85)
REALTYPE, parameter :: sdd2 = 1.85
double diffusion constant for salinity in diffusive convection
(sdd3=0.85)
REALTYPE, parameter :: sdd3 = 0.85
double diffusion constant for temperature in diffusive convection
(tdd1=0.909)
REALTYPE, parameter :: tdd1 = 0.909
double diffusion constant for temperature in diffusive convection
(tdd2=4.6)
REALTYPE, parameter :: tdd2 = 4.6
double diffusion constant for temperature in diffusive convection case
(tdd3=0.54).
REALTYPE, parameter :: tdd3 = 0.54
proportionality coefficient parameterizing nonlocal transport
(Cstar=10.0)
REALTYPE, parameter :: Cstar = 10.0
ratio of interior Brunt-Vaisala frequency to that
at entrainment depth (Cv=1.5-1.6)
REALTYPE, parameter :: Cv = 1.6
ratio of entrainment flux to surface buoyancy flux (betaT=-0.2)
REALTYPE, parameter :: betaT = -0.2
constant for computation of Ekman scale (cekman=0.7)
REALTYPE, parameter :: cekman = 0.7
constant for computation of Monin-Obukhov scale (cmonob = 1.0)
REALTYPE, parameter :: cmonob = 1.0
coefficient of flux profile for momentum in their
1/3 power law regimes (am=1.26)
REALTYPE, parameter :: am = 1.257
coefficient of flux profile for momentum in their
1/3 power law regimes (as=-28.86)
REALTYPE, parameter :: as = -28.86
coefficient of flux profile for momentum in their
1/3 power law regimes (cm=8.38)
REALTYPE, parameter :: cm = 8.38
coefficient of flux profile for momentum in their
1/3 power law regimes (cs=98.96)
REALTYPE, parameter :: cs = 98.96
maximum stability parameter "zeta" value of the 1/3
power law regime of flux profile for momentum (zetam=-0.2)
REALTYPE, parameter :: zetam = -0.2
maximum stability parameter "zeta" value of the 1/3
power law regime of flux profile for tracers (zetas=-1.0)
REALTYPE, parameter :: zetas = -1.0
REVISION HISTORY:
Original author(s): Lars Umlauf
$Log: kpp.F90,v $
Revision 1.6 2011-04-05 14:53:31 jorn
removed reference to eqstate from kpp
Revision 1.5 2010-09-17 12:53:52 jorn
extensive code clean-up to ensure proper initialization and clean-up of all variables
Revision 1.4 2007-01-06 11:49:15 kbk
namelist file extension changed .inp --> .nml
Revision 1.3 2005/11/15 11:35:02 lars
documentation finish for print
Revision 1.2 2005/07/21 10:20:00 lars
polished documentation
Revision 1.1 2005/06/27 10:54:33 kbk
new files needed
LOCAL VARIABLES:
proportionality coefficient for
parameterizing non-local transport
REALTYPE :: Cg
coefficient from computation of
turbulent shear velocity
REALTYPE :: Vtc
acceleration of gravity
REALTYPE :: g
reference density
REALTYPE :: rho_0
g/rho_0
REALTYPE :: gorho0
critical bulk Richardson number
REALTYPE :: Ric
compute surface and bottom BBL
logical :: kpp_sbl,kpp_bbl
compute internal mixing
logical :: kpp_interior
use clipping of MLD at Ekman and Monin-Oboukhov scale
logical :: clip_mld
positions of grid faces and centers
REALTYPE, dimension(:), allocatable :: z_w,z_r
distance between centers
REALTYPE, dimension(:), allocatable :: h_r
integer :: ksblOld
REALTYPE :: zsblOld