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

**INTERFACE:**

module variables_3d

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 -coordinate) |

kumin_pmz |
2D | [-] | lowest index in U-point (poor man's -coordinate) |

kvmin_pmz |
2D | [-] | lowest index in V-point (poor man's -coordinate) |

uu |
3D | [ms] | layer integrated transport |

vv |
3D | [ms] | layer integrated transport |

ww |
3D | [ms] | 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 | [ms] | sum of advection and diffusion for -equation |

vvEx |
3D | [ms] | sum of advection and diffusion for -equation |

num |
3D | [ms] | eddy viscosity on -points |

nuh |
3D | [ms] | eddy diffusivity on -points |

tke |
3D | [ms] | turbulent kinetic energy |

eps |
3D | [ms] | turbulent dissipation rate |

SS |
3D | [s] | shear-frequency squared |

NN |
3D | [s] | Brunt-Väisälä frequency squared |

S |
3D | [psu] | salinity |

T |
3D | [C] | potential temperature |

rad |
3D | [Wm] | Short wave penetration |

rho |
3D | [kgm] | density |

buoy |
3D | [ms] | buoyancy |

idpdx |
3D | [ms] | -component of internal pressure gradient |

idpdy |
3D | [ms] | -component of internal pressure gradient |

spm |
3D | [kgm] | suspended matter concentration |

spm_ws |
3D | [ms] | settling velocity of suspended matter |

spm_pool |
2D | [kgm] | bottom pool of suspended matter |

uadv |
3D | [ms] | interpolated -component of momentum advection velocity |

vadv |
3D | [ms] | interpolated -component of momentum advection velocity |

wadv |
3D | [ms] | interpolated vertical component of momentum advection velocity |

huadv |
3D | [m] | interpolated height of advective flux layer (-component) |

hvadv |
3D | [m] | interpolated height of advective flux layer (-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] | drag coefficient times curret speed in U-point |

rrv |
2D | [ms] | drag coefficient times curret speed in V-point |

taus |
2D | [ms] | normalised surface stress (T-point) |

taub |
2D | [ms] | 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

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

Original author(s): Karsten Bolding & Hans Burchard