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 | [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 | [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 | [kg m] | density |

buoy | 3D | [m s] | buoyancy |

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

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

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 -component of momentum advection velocity |

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

wadv | 3D | [m s] | 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 | [m s] | drag coefficient times curret speed in U-point |

rrv | 2D | [m s] | 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 use field_manager IMPLICIT NONE

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

Original author(s): Karsten Bolding & Hans Burchard