bottom_friction - calculates the 2D bottom friction. (Source File: bottom_friction.F90)

INTERFACE:

    subroutine bottom_friction(runtype)
DESCRIPTION:

In this routine the bottom friction for the external (vertically integrated) mode is calculated. This is done separately for the $U$-equation in the U-points and for the $V$-equation in the V-points. The drag coefficient $R$ for the external mode is given in eq. (71) on page [*]. For runtype=1 (only vertically integrated calculations), the bottom roughness length is depending on the bed friction velocity $u_*^b$ and the molecular viscosity $\nu$:

$\displaystyle z_0^b = 0.1 \frac{\nu}{u_*^b} + \left(z^b_0\right)_{\min},$ (81)

see e.g. Kagan (1995), i.e. the given roughness may be increased by viscous effects. After this, the drag coefficient is multiplied by the absolute value of the local velocity, which is alculated by dividing the local transports by the local water depths and by properly interpolating these velocities to the U- and V-points. The resulting fields are ru, representing $R\sqrt{u^2+v^2}$ on the U-points and rv, representing this quantity on the V-points. USES:

    use parameters, only: kappa,avmmol
    use domain, only: imin,imax,jmin,jmax,au,av,min_depth
    use variables_2d
    use getm_timers,  only: tic, toc, TIM_BOTTFRICT
  $ use omp_lib
    IMPLICIT NONE
INPUT PARAMETERS:
    integer, intent(in)                 :: runtype
REVISION HISTORY:
    Original author(s): Karsten Bolding & Hans Burchard
LOCAL VARIABLES:
    integer                   :: i,j
    REALTYPE                  :: uloc(E2DFIELD),vloc(E2DFIELD)
    REALTYPE                  :: HH(E2DFIELD),fricvel(E2DFIELD)