subroutine uv_diff_2dh(An_method,UEx,VEx,U,V,D,DU,DV,hsd_u,hsd_v) Note (KK): keep in sync with interface in m2d.F90DESCRIPTION:
Here, the diffusion terms for the vertically integrated transports are
calculated by means of central differences, following the finite volume
approach. They are added to the
advection terms into the terms UEx and VEx for the
- and the
-equation, respectively. The physical diffusion with the
given eddy viscosity coefficient
is based on velocity gradients,
whereas an additional numerical damping of the barotropic mode is based
on gradients of the transports with the damping coefficient
,
see the example given as equations (90) and
(91).
First diffusion term in (61):
(82) |
with diffusive fluxes
(83) |
Second diffusion term in (61):
(84) |
with diffusive fluxes
(85) |
First diffusion term in (62):
(86) |
with diffusive fluxes
(87) |
Second diffusion term in (62):
(88) |
with diffusive fluxes
(89) |
The role of the additional diffusion of and
with the
diffusion coefficient
is best demonstrated by means of a
simplified set of vertically integrated equations:
which can be transformed into an equation for
by
derivation of the
-equation with respect to
,
of the
-equation with respect to
and the
-equation with respect to
and subsequent elimination of
and
:
which can be interpreted as a wave equation with a damping on
. This introduces an explicit damping of
free surface elevation oscillations in a momentum-conservative
manner. Hydrodynamic models with implicit treatment of the barotropic mode
do not need to apply this method due to the implicit damping of those models,
see e.g. Backhaus (1985). The implementation of this explicit damping
described here has been suggested by Jean-Marie Beckers, LiƩge
(Belgium).
When working with the option SLICE_MODEL, the calculation of
all gradients in -direction is suppressed.
USES:
use domain, only: imin,imax,jmin,jmax,az,au,av,ax #if defined(SPHERICAL) || defined(CURVILINEAR) use domain, only: dyc,arud1,dxx,dyx,arvd1,dxc #else use domain, only: dx,dy,ard1 #endif use m2d, only: Am use variables_2d, only: An,AnX $ use omp_lib IMPLICIT NONEINPUT PARAMETERS:
integer,intent(in) :: An_method REALTYPE,dimension(E2DFIELD),intent(in),optional :: U,V,D,DU,DVINPUT/OUTPUT PARAMETERS:
REALTYPE,dimension(E2DFIELD),intent(inout) :: UEx,VExOUTPUT PARAMETERS:
REALTYPE,dimension(E2DFIELD),intent(out),optional :: hsd_u,hsd_vREVISION HISTORY:
Original author(s): Hans Burchard Modified by : Knut KlingbeilLOCAL VARIABLES:
REALTYPE,dimension(E2DFIELD) :: work2d logical :: use_Am integer :: i,j