The dynamic epsilon-equation


   subroutine dissipationeq(nlev,dt,u_taus,u_taub,z0s,z0b,h,NN,SS)

The $ k$-$ \epsilon$ model in its form suggested by Rodi (1987) has been implemented in GOTM. In this model, the rate of dissipation is balanced according to

$\displaystyle \dot{\epsilon} = {\cal D}_\epsilon + \frac{\epsilon}{k} ( c_{\epsilon 1} P + c_{\epsilon 3} G - c_{\epsilon 2} \epsilon ) \; , \quad$ (165)

where $ \dot{\epsilon}$ denotes the material derivative of $ \epsilon$. The production terms $ P$ and $ G$ follow from (154) and $ {\cal D}_\epsilon$ represents the sum of the viscous and turbulent transport terms.

For horizontally homogeneous flows, the transport term $ {\cal D}_\epsilon$ appearing in (165) is presently expressed by a simple gradient formulation,

$\displaystyle {\cal D}_\epsilon = \dfrac{\partial}{\partial {z}} \left( \dfrac{...
...}{\sigma_\epsilon} \dfrac{\partial {\epsilon}}{\partial {z}} \right) \; , \quad$ (166)

where $ \sigma_\epsilon$ is the constant Schmidt-number for $ \epsilon$.

It should be pointed out that not all authors retain the buoyancy term in (165), see e.g. Gibson and Launder (1976). Similar to the model of Mellor and Yamada (1982), Craft et al. (1996) set $ c_{\epsilon 1}=c_{\epsilon 3}$. However, in both cases, the $ k$-$ \epsilon$ model cannot predict a proper state of full equilibrium in stratified flows at a predefined value of the Richardson number (see Umlauf et al. (2003) and discussion around (116)). Model constants are summarised in table 7.

Table 7: Constants appearing in (165) and (155).

At the end of this routine the length-scale can be constrained according to a suggestion of Galperin et al. (1988). This feature is optional and can be activated by setting length_lim = .true. in gotmturb.nml.


   use turbulence, only: P,B,num
   use turbulence, only: tke,tkeo,k_min,eps,eps_min,L
   use turbulence, only: ce1,ce2,ce3plus,ce3minus
   use turbulence, only: cm0,cde,galp,length_lim
   use turbulence, only: epsilon_bc, psi_ubc, psi_lbc, ubc_type, lbc_type
   use turbulence, only: sig_e,sig_e0,sig_peps
   use util,       only: Dirichlet,Neumann
   number of vertical layers
   integer,  intent(in)                :: nlev
   time step (s)
   REALTYPE, intent(in)                :: dt
   surface and bottom
   friction velocity (m/s)
   REALTYPE, intent(in)                :: u_taus,u_taub
   surface and bottom
   roughness length (m)
   REALTYPE, intent(in)                :: z0s,z0b
   layer thickness (m)
   REALTYPE, intent(in)                :: h(0:nlev)
   square of shear and buoyancy
   frequency (1/s^2)
   REALTYPE, intent(in)                :: NN(0:nlev),SS(0:nlev)
   Original author(s): Lars Umlauf
                      (re-write after first version of
                       H. Burchard and K. Bolding

Karsten Bolding 2012-12-28