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 NONE
PUBLIC 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=7
REVISION HISTORY:
Original author(s): Hans Burchard & Karsten Bolding