subroutine bottom_friction_3d

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,

(126) |

with the velocity components of the bottom layer, and , and the drag coefficient

is calculated and provided as output parameters rru (for U-points) and rrv (for V-points). The layer height 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 to V-points and of 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 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

Original author(s): Hans Burchard & Karsten Bolding

integer :: i,j,kk REALTYPE :: r,hh,fricvel logical, save :: first=.true. REALTYPE :: uuloc(I2DFIELD) REALTYPE :: uvloc(I2DFIELD) REALTYPE :: vuloc(I2DFIELD) REALTYPE :: vvloc(I2DFIELD)