INTERFACE:
subroutine uequation(nlev,dt,cnpar,tx,num,gamu,Method)DESCRIPTION:
This subroutine computes the transport of momentum in
-direction according to
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
.
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
.
USES:
use meanflow, only: gravity,avmolu use meanflow, only: h,u,uo,v,w,avh use meanflow, only: drag,SS 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 NONEINPUT 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) :: methodDEFINED PARAMETERS:
REALTYPE, parameter :: long=1.0D15REVISION HISTORY:
Original author(s): Lars Umlauf
(re-write after first version of
Hans Burchard and Karsten Bolding)
$Log: uequation.F90,v $
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.