Fortran: Module Interface variables_3d - global 3D related variables (Source File: variables_3d.F90)

INTERFACE:

    module variables_3d
DESCRIPTION:

This modules contains declarations for all variables related to 3D hydrodynamical calculations. Information about the calculation domain is included from the domain module. The variables are either statically defined in static_3d.h or dynamically allocated in dynamic_declarations_3d.h. The variables which need to be declared have the following dimensions, units and meanings:



kmin 2D [-] lowest index in T-point
kumin 2D [-] lowest index in U-point
kvmin 2D [-] lowest index in V-point
kmin_pmz 2D [-] lowest index in T-point (poor man's $ z$-coordinate)
kumin_pmz 2D [-] lowest index in U-point (poor man's $ z$-coordinate)
kvmin_pmz 2D [-] lowest index in V-point (poor man's $ z$-coordinate)
uu 3D [m$ ^2$s$ ^{-1}$] layer integrated $ u$ transport $ p_k$
vv 3D [m$ ^2$s$ ^{-1}$] layer integrated $ v$ transport $ q_k$
ww 3D [ms$ ^{-1}$] grid-related vertical velocity $ \bar w_k$
ho 3D [m] old layer height in T-point
hn 3D [m] new layer height in T-point
huo 3D [m] old layer height in U-point
hun 3D [m] new layer height in U-point
hvo 3D [m] old layer height in V-point
hvn 3D [m] new layer height in V-point
hcc 3D [-] hydrostatic consistency index in T-points
uuEx 3D [m$ ^2$s$ ^{-2}$] sum of advection and diffusion for $ u$-equation
vvEx 3D [m$ ^2$s$ ^{-2}$] sum of advection and diffusion for $ v$-equation
num 3D [m$ ^2$s$ ^{-1}$] eddy viscosity on $ w$-points $ \nu_t$
nuh 3D [m$ ^2$s$ ^{-1}$] eddy diffusivity on $ w$-points $ \nu'_t$
tke 3D [m$ ^2$s$ ^{-2}$] turbulent kinetic energy $ k$
eps 3D [m$ ^2$s$ ^{-3}$] turbulent dissipation rate $ \varepsilon $
SS 3D [s$ ^{-2}$] shear-frequency squared $ M^2$
NN 3D [s$ ^{-2}$] Brunt-Väisälä frequency squared$ N^2$
S 3D [psu] salinity $ S$
T 3D [$ ^{\circ}$C] potential temperature $ \theta$
rad 3D [Wm$ ^{-2}$] Short wave penetration
rho 3D [kgm$ ^{-3}$] density $ \rho$
buoy 3D [ms$ ^{-2}$] buoyancy $ b$
idpdx 3D [m$ ^2$s$ ^{-2}$] $ x$-component of internal pressure gradient
idpdy 3D [m$ ^2$s$ ^{-2}$] $ y$-component of internal pressure gradient
spm 3D [kgm$ ^{-3}$] suspended matter concentration
spm_ws 3D [ms$ ^{-1}$] settling velocity of suspended matter
spm_pool 2D [kgm$ ^{-2}$] bottom pool of suspended matter
uadv 3D [ms$ ^{-1}$] interpolated $ x$-component of momentum advection velocity
vadv 3D [ms$ ^{-1}$] interpolated $ y$-component of momentum advection velocity
wadv 3D [ms$ ^{-1}$] interpolated vertical component of momentum advection velocity
huadv 3D [m] interpolated height of advective flux layer ($ x$-component)
hvadv 3D [m] interpolated height of advective flux layer ($ y$-component)
hoadv 3D [m] old height of advective finite volume cell
hnadv 3D [m] new height of advective finite volume cell
sseo 2D [m] sea surface elevation before macro time step (T-point)
ssen 2D [m] sea surface elevation after macro time step (T-point)
ssuo 2D [m] sea surface elevation before macro time step (U-point)
ssun 2D [m] sea surface elevation after macro time step (U-point)
ssvo 2D [m] sea surface elevation before macro time step (V-point)
ssvn 2D [m] sea surface elevation after macro time step (V-point)
rru 2D [ms$ ^{-1}$] drag coefficient times curret speed in U-point
rrv 2D [ms$ ^{-1}$] drag coefficient times curret speed in V-point
taus 2D [m$ ^2$s$ ^{-2}$] normalised surface stress (T-point)
taub 2D [m$ ^2$s$ ^{-2}$] normalised bottom stress (T-point)



It should be noted that depending on compiler options and runtype not all these variables are defined.

The module contains public subroutines to initialise (see init_variables_3d) and cleanup (see clean_variables_3d). USES:

    use domain,     only: imin,imax,jmin,jmax,kmax
    IMPLICIT NONE
PUBLIC DATA MEMBERS:
    REALTYPE                            :: dt,cnpar=0.9
    REALTYPE                            :: avmback=_ZERO_,avhback=_ZERO_
    logical                             :: do_numerical_analyses=.false.
 #ifdef STATIC
 #include "static_3d.h"
 #else
 #include "dynamic_declarations_3d.h"
 #endif
 
   REALTYPE, dimension(:,:,:), allocatable   :: numdis3d
   REALTYPE, dimension(:,:), allocatable     :: numdis2d
   REALTYPE, dimension(:,:,:), allocatable   :: nummix3d_S,nummix3d_T
   REALTYPE, dimension(:,:,:), allocatable   :: phymix3d_S,phymix3d_T
   REALTYPE, dimension(:,:), allocatable     :: nummix2d_S,nummix2d_T
   REALTYPE, dimension(:,:), allocatable     :: phymix2d_S,phymix2d_T
 
 #ifdef GETM_BIO
    REALTYPE, allocatable               :: cc3d(:,:,:,:)
    REALTYPE, allocatable               :: ws3d(:,:,:,:)
 #endif
 #ifdef _FABM_
    REALTYPE, allocatable, dimension(:,:,:,:) :: fabm_pel,fabm_diag
    REALTYPE, allocatable, dimension(:,:,:)   :: fabm_ben,fabm_diag_hz
 #endif
    integer                             :: size3d_field
    integer                             :: mem3d
    integer                             :: preadapt
REVISION HISTORY:
    Original author(s): Karsten Bolding & Hans Burchard



Subsections
kklingbe 2017-10-02