INTERFACE:
module variables_3dDESCRIPTION:
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
|
| kumin_pmz | 2D | [-] | lowest index in U-point (poor man's
|
| kvmin_pmz | 2D | [-] | lowest index in V-point (poor man's
|
| uu | 3D | [m |
layer integrated |
| vv | 3D | [m |
layer integrated |
| ww | 3D | [m s |
grid-related vertical velocity
|
| 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 |
sum of advection and
diffusion for |
| vvEx | 3D | [m |
sum of advection and
diffusion for |
| num | 3D | [m |
eddy viscosity on |
| nuh | 3D | [m |
eddy diffusivity on |
| tke | 3D | [m |
turbulent kinetic energy |
| eps | 3D | [m |
turbulent dissipation rate
|
| SS | 3D | [s |
shear-frequency squared |
| NN | 3D | [s |
Brunt-Väisälä frequency squared |
| S | 3D | [psu] | salinity |
| T | 3D | [ |
potential temperature |
| rad | 3D | [Wm |
Short wave penetration |
| rho | 3D | [kg m |
density |
| buoy | 3D | [m s |
buoyancy |
| idpdx | 3D | [m |
|
| idpdy | 3D | [m |
|
| spm | 3D | [kg m |
suspended matter concentration |
| spm_ws | 3D | [m s |
settling velocity of suspended matter |
| spm_pool | 2D | [kg m |
bottom pool of suspended matter |
| uadv | 3D | [m s |
interpolated |
| vadv | 3D | [m s |
interpolated |
| wadv | 3D | [m s |
interpolated vertical component of momentum advection velocity |
| huadv | 3D | [m] | interpolated height of advective flux
layer ( |
| hvadv | 3D | [m] | interpolated height of advective flux
layer ( |
| 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 | [m s |
drag coefficient times curret speed in U-point |
| rrv | 2D | [m s |
drag coefficient times curret speed in V-point |
| taus | 2D | [m |
normalised surface stress (T-point) |
| taub | 2D | [m |
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
use field_manager
IMPLICIT NONE
PUBLIC DATA MEMBERS:
integer, parameter :: rk = kind(_ONE_)
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