This subroutine computes the transport of momentum in -direction according to
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 . 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 .
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 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.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