Update the sea grass model


INTERFACE:

    subroutine do_seagrass(nlev,dt)
DESCRIPTION:

Here the time depending seagrass equation suggested by Verduin and Backhaus (2000) is calculated. In order to explain the basic principle, an idealised example is examined here with a simplified momentum equation,

$\displaystyle \partial_t u - \partial_z(\nu_t \partial_z u) = -g\partial_x\zeta-C_fu\vert u\vert \; , \quad$ (269)

and the Lagrangian tracer equation for seagrass,

$\displaystyle \partial_t X = \left\{ \begin{array}{ll} u & \mbox{ for } \vert X...
...ax} \mbox{ or } X \cdot u <0,\\ 0 & \mbox{ else} \; , \quad \end{array} \right.$ (270)

where $ X$ is the Langrangian horizontal excursion of the seagrass. The seagrass friction coefficient, $ C_f$, is only non-zero at heights where seagrass tracers are at their excursion limits:

$\displaystyle C_f = \left\{ \begin{array}{ll} C_f^{\max} & \mbox{ for } \vert X\vert=X_{\max} \; , \quad \\ 0 & \mbox{ else} \quad . \end{array} \right.$ (271)

The maximum excursion limits $ X_{\max}$ and the friction coefficients $ C_f^{\max}$ are read from a file.

The production of turbulence is calculated here as the sum of shear production and friction loss at the seagrass leaves,

$\displaystyle X_P = \alpha_{sg} C_f \vert u\vert^3 \; , \quad$ (272)

which is added to the usual shear-production term as illustrated in (146). The efficiency coefficient of turbulence production by sea-grass friction, $ \alpha_{sg}$, is denoted as xP_rat in the code. It has to be read-in from the canopy namelist. For details and example calculations, see Burchard and Bolding (2000).


USES:

    use meanflow, only:     u,v,h,drag,xP
    IMPLICIT NONE
INPUT PARAMETERS:
    integer,  intent(in)     :: nlev
    REALTYPE, intent(in)     :: dt
REVISION HISTORY:
    Original author(s): Karsten Bolding & Hans Burchard
LOCAL VARIABLES:
    integer                   :: i
    REALTYPE                  :: dist
    REALTYPE                  :: grassfric(0:nlev)
    REALTYPE                  :: excur(0:nlev)
    REALTYPE                  :: z(0:nlev)

Karsten Bolding 2012-01-24