INTERFACE:
module m3dDESCRIPTION:
This module contains declarations for all variables related to 3D
hydrodynamical calculations. Information about the calculation domain
is included from the domain module.
The module contains public subroutines for initialisation, integration
and clean up of the 3D model component.
The m3d module is initialised in the routine init_3d, see
section 8.4.1 described on page
.
The actual calculation routines are called in integrate_3d
(see section 8.4.3 on page
).
and are linked in from the library lib3d.a.
After the simulation, the module is closed in clean_3d, see
section 8.4.4 on page
.
USES:
use exceptions
use parameters, only: avmmol
use domain, only: openbdy,maxdepth,vert_cord,az
use m2d, only: uv_advect,uv_diffusion
use variables_2d, only: z,Uint,Vint,UEx,VEx
#ifndef NO_BAROCLINIC
use temperature,only: init_temperature, do_temperature, &
init_temperature_field
use salinity, only: init_salinity, do_salinity, init_salinity_field
use eqstate, only: init_eqstate, do_eqstate
use internal_pressure, only: init_internal_pressure, do_internal_pressure
use internal_pressure, only: ip_method
#endif
use variables_3d
use advection, only: NOADV
use advection_3d, only: init_advection_3d,print_adv_settings_3d,adv_ver_iterations
use bdy_3d, only: init_bdy_3d, do_bdy_3d
use bdy_3d, only: bdy3d_tmrlx, bdy3d_tmrlx_ucut, bdy3d_tmrlx_max, bdy3d_tmrlx_min
Necessary to use halo_zones because update_3d_halos() have been moved out
temperature.F90 and salinity.F90 - should be changed at a later stage
use halo_zones, only: update_3d_halo,wait_halo,D_TAG
IMPLICIT NONE
PUBLIC DATA MEMBERS:
integer :: M=1
REALTYPE :: cord_relax=_ZERO_
integer :: vel3d_adv_split=0
integer :: vel3d_adv_hor=1
integer :: vel3d_adv_ver=1
integer :: turb_adv_split=0
integer :: turb_adv_hor=0
integer :: turb_adv_ver=0
logical :: calc_temp=.true.
logical :: calc_salt=.true.
logical :: bdy3d=.false.
integer :: bdyfmt_3d,bdy3d_ramp
character(len=PATH_MAX) :: bdyfile_3d
REALTYPE :: ip_fac=_ONE_
integer :: vel_check=0
REALTYPE :: min_vel=-4*_ONE_,max_vel=4*_ONE_
REVISION HISTORY:
Original author(s): Karsten Bolding & Hans BurchardLOCAL VARIABLES:
logical :: advect_turbulence=.false.
#ifdef NO_BAROCLINIC
integer :: ip_method
#endif
integer :: ip_ramp=-1