Fortran: Module Interface m3d - 3D model component (Source File: m3d.F90)

INTERFACE:

    module m3d
DESCRIPTION:

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 Burchard
LOCAL VARIABLES:
    logical         :: advect_turbulence=.false.
 #ifdef NO_BAROCLINIC
    integer         :: ip_method
 #endif
    integer         :: ip_ramp=-1



Subsections