bottom_friction_3d - bottom friction (Source File: bottom_friction_3d.F90)

INTERFACE:

    subroutine bottom_friction_3d
DESCRIPTION:

Based on the assumption that the velocity distribution in the bottom layer is logarithmic, the product of the drag coefficient with the absolute value of the current speed in the bottom layer,

$\displaystyle r \sqrt{u_b^2+v_b^2}$ (126)

with the velocity components of the bottom layer, $u_b$ and $v_b$, and the drag coefficient

$\displaystyle r = \left(\frac{\kappa}{\ln \left(\frac{0.5h_1+z_0^b}{z_0^b}\right)}
\right)^2,$ (127)

is calculated and provided as output parameters rru (for U-points) and rrv (for V-points). The layer height $h_1$ in (127) is set to the thickness of the bottom layer in the respective U- or V-point.

There are some experimental options for the interested user included here. It is possible to change the interpolation of $u$ to V-points and of $v$ to U-points from velocity-based interpolation (as done presently) to transport-based averaging (commented out). Furthermore, the user may activate some outcommented lines which allow the consideration of flow-depending bottom roughness length $z_0^b$ according to (81), see page [*].

For a derivation of (127), see section 5.4 on page [*]. USES:

    use parameters, only: kappa,avmmol
    use domain, only: imin,imax,jmin,jmax,kmax,au,av,min_depth
    use variables_2d, only: zub,zvb,zub0,zvb0
    use variables_3d, only: kumin,kvmin,uu,vv,huo,hun,hvo,hvn,rru,rrv
    use getm_timers, only: tic, toc, TIM_BOTTFRICT3D
  $ use omp_lib
    IMPLICIT NONE
REVISION HISTORY:
    Original author(s): Hans Burchard & Karsten Bolding
LOCAL VARIABLES:
    integer                   :: i,j,kk
    REALTYPE                  :: r,hh,fricvel
    logical, save             :: first=.true.
    REALTYPE                  :: uuloc(I2DFIELD)
    REALTYPE                  :: uvloc(I2DFIELD)
    REALTYPE                  :: vuloc(I2DFIELD)
    REALTYPE                  :: vvloc(I2DFIELD)