INTERFACE:
module internal_pressureDESCRIPTION:
In GETM, various methods are provided for the calculation of the internal pressure gradients terms in - and -direction. These terms which appear as layer-integrated terms in the equations for the layer-integrated momentum are for the eastward momentum (see equation (26)):
(114) |
and for the northward layer-integrated momentum (see equation (27)):
(115) |
The major problem is how to calculate the horizontal (with respect to isogeopotentials) buoyancy gradients and , which need to be defined at the interfaces positioned vertically between two velocity points.
The methods for calculating the internal pressure gradient included in GETM are currently:
It is possible, by setting the compiler option SUBSTR_INI_PRESS, to substract the initial pressure gradient from all pressure gradients. This is only advisable for strong stratification without any initial internal pressure gradients. In this case any non-zero values of the resulting numerical initial pressure gradient are due to discretisation errors. USES:
use exceptions use domain, only: imin,imax,jmin,jmax,kmax,az,au,av,H,HU,HV #if defined(SPHERICAL) || defined(CURVILINEAR) use domain, only: dxu,dyv #else use domain, only: dx,dy #endif use variables_3d, only: kmin,hun,hvn,idpdx,idpdy,buoy,ssun,ssvn,ssen #ifdef MUDFLAT use variables_3d, only: hn=>ho #else use variables_3d, only: hn #endif IMPLICIT NONEPUBLIC DATA MEMBERS:
public init_internal_pressure, do_internal_pressure integer, public :: ip_method=1 #ifdef STATIC REALTYPE :: zz(I3DFIELD) #ifdef SUBSTR_INI_PRESS REALTYPE :: idpdx0(I3DFIELD),idpdy0(I3DFIELD) #endif #else REALTYPE, allocatable :: zz(:,:,:) #ifdef SUBSTR_INI_PRESS REALTYPE, allocatable :: idpdx0(:,:,:),idpdy0(:,:,:) #endif #endif !PRIVATE DATA MEMBERS: integer, private, parameter :: BLUMBERG_MELLOR=1 integer, private, parameter :: BLUMBERG_MELLOR_LIN=2 integer, private, parameter :: Z_INTERPOL=3 integer, private, parameter :: SONG_WRIGHT=4 integer, private, parameter :: CHU_FAN=5 integer, private, parameter :: SHCHEPETKIN_MCWILLIAMS=6 integer, private, parameter :: STELLING_VANKESTER=7REVISION HISTORY:
Original author(s): Hans Burchard & Karsten Bolding