The U-momentum equation


   subroutine uequation(nlev,dt,cnpar,tx,num,gamu,Method)

This subroutine computes the transport of momentum in $ x$-direction according to

$\displaystyle \dot{U} = {\cal D}_U - g \dfrac{\partial {\zeta}}{\partial {x}} +...
...tial {x}}  dz' - \frac{1}{\tau^U_R}(U-U_{obs})-C_f U \sqrt{U^2+V^2} \; , \quad$ (12)

where $ \dot{U}$ denotes the material derivative of $ U$, $ \zeta$ the free surface elevation and $ B$ the mean buoyancy defined in (33). $ {\cal D}_U$ is the sum of the turbulent and viscous transport terms modelled according to

$\displaystyle {\cal D}_U = \dfrac{\partial}{\partial {z}} \left( \left( \nu_t + \nu \right) \dfrac{\partial {U}}{\partial {z}} - \tilde{\Gamma}_U \right) \quad .$ (13)

In this equation, $ \nu_t$ and $ \nu$ are the turbulent and molecular diffusivities of momentum, respectively, and $ \tilde{\Gamma}_U$ denotes the non-local flux of momentum, see section 4.

Coriolis rotation is accounted for as described in section 3.4. The external pressure gradient (second term on right hand side) is applied here only if surface slopes are directly given. Otherwise, the gradient is computed as described in section 3.7, see Burchard (1999). The internal pressure gradient (third term on right hand side) is calculated in intpressure.F90, see section 3.8. The fifth term on the right hand side allows for nudging the velocity to observed profiles with the relaxation time scale $ \tau^U_R$. This is useful for initialising velocity profiles in case of significant inertial oscillations. Bottom friction is implemented implicitly using the fourth term on the right hand side. Implicit friction may be applied on all levels in order to allow for inner friction terms such as seagrass friction (see section 10.1).

Diffusion is numerically treated implicitly, see equations (7)- (9). The tri-diagonal matrix is solved then by a simplified Gauss elimination. Vertical advection is included, and it must be non-conservative, which is ensured by setting the local variable adv_mode=0, see section 8.5 on page [*].


   use meanflow,     only: gravity,avmolu
   use meanflow,     only: h,u,uo,v,w,avh
   use meanflow,     only: drag,SS,runtimeu
   use observations, only: w_adv_method,w_adv_discr
   use observations, only: uProf,vel_relax_tau,vel_relax_ramp
   use observations, only: idpdx,dpdx
   use util,         only: Dirichlet,Neumann
   use util,         only: oneSided,zeroDivergence
   number of vertical layers
   integer, intent(in)                 :: nlev
   time step (s)
   REALTYPE, intent(in)                :: dt
   numerical "implicitness" parameter
   REALTYPE, intent(in)                :: cnpar
   wind stress in x-direction
   divided by rho_0 (m^2/s^2)
   REALTYPE, intent(in)                :: tx
   diffusivity of momentum (m^2/s)
   REALTYPE, intent(in)                :: num(0:nlev)
   non-local flux of momentum (m^2/s^2)
   REALTYPE, intent(in)                :: gamu(0:nlev)
   method to compute external
   pressure gradient
   integer, intent(in)                 :: method
   REALTYPE, parameter                 :: long=1.0D15
   Original author(s): Lars Umlauf
                       (re-write after first version of
                        Hans Burchard and Karsten Bolding)

Karsten Bolding 2012-12-28