The U-momentum equation (Source File: uequation.F90)


INTERFACE:

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

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.2.5. 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.2.8, see Burchard (1999). The internal pressure gradient (third term on right hand side) is calculated in intpressure.F90, see section 3.2.9. 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.2.3 on page [*].


USES:

    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
 
    IMPLICIT NONE
INPUT PARAMETERS:
 
    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
DEFINED PARAMETERS:
    REALTYPE, parameter                 :: long=1.0D15
REVISION HISTORY:
    Original author(s): Lars Umlauf
                        (re-write after first version of
                         Hans Burchard and Karsten Bolding)
    $Log: uequation.F90,v $
    Revision 1.13  2010-09-17 12:53:48  jorn
    extensive code clean-up to ensure proper initialization and clean-up of all variables
    Revision 1.12  2008-03-07 17:57:49  hb
    AdvBcup changed to oneSided
    Revision 1.11  2006-11-06 13:36:45  hb
    Option for conservative vertical advection added to adv_center
    Revision 1.10  2006-04-03 08:39:12  lars
    fixed bug in relaxation times - Thanks to Adolf Stips
    Revision 1.9  2005-11-17 09:58:20  hb
    explicit argument for positive definite variables in diff_center()
    Revision 1.8  2005/06/27 13:44:07  kbk
    modified + removed traling blanks
    Revision 1.7  2004/08/18 11:44:49  lars
    updated documentation
    Revision 1.6  2003/03/28 09:20:35  kbk
    added new copyright to files
    Revision 1.5  2003/03/28 08:56:56  kbk
    removed tabs
    Revision 1.4  2003/03/10 08:50:07  gotm
    Improved documentation and cleaned up code
    Revision 1.3  2001/05/31 12:00:52  gotm
    Correction in the calculation of the shear squared calculation
    --- now according to Burchard 1995 (Ph.D. thesis).
    Also some cosmetics and cleaning of Makefiles.

Karsten Bolding 2012-01-24