INTERFACE:
module m2dDESCRIPTION:
This module contains declarations for all variables related to 2D 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 2D model component. The actual calculation routines are called in integrate_2d and are linked in from the library lib2d.a. USES:
use exceptions
use time, only: julianday,secondsofday
use parameters, only: avmmol
use domain, only: imin,imax,jmin,jmax,az,au,av,H,min_depth
use domain, only: ilg,ihg,jlg,jhg
use domain, only: ill,ihl,jll,jhl
use domain, only: openbdy,have_boundaries,z0_method,z0_const,z0
use domain, only: check_cfl
use domain, only: az,ax
KB use get_field, only: get_2d_field
use advection, only: init_advection,print_adv_settings,NOADV
use halo_zones, only: update_2d_halo,wait_halo,H_TAG
use variables_2d
IMPLICIT NONE
interface
subroutine uv_advect(U,V,DU,DV)
use domain, only: imin,imax,jmin,jmax
IMPLICIT NONE
REALTYPE,dimension(E2DFIELD),intent(in) :: U,V
REALTYPE,dimension(E2DFIELD),target,intent(in) :: DU,DV
end subroutine uv_advect
subroutine uv_diffusion(An_method,U,V,D,DU,DV)
use domain, only: imin,imax,jmin,jmax
IMPLICIT NONE
integer,intent(in) :: An_method
REALTYPE,dimension(E2DFIELD),intent(in) :: U,V,D,DU,DV
end subroutine uv_diffusion
subroutine uv_diff_2dh(An_method,UEx,VEx,U,V,D,DU,DV,hsd_u,hsd_v)
use domain, only: imin,imax,jmin,jmax
IMPLICIT NONE
integer,intent(in) :: An_method
REALTYPE,dimension(E2DFIELD),intent(in),optional :: U,V,D,DU,DV
REALTYPE,dimension(E2DFIELD),intent(inout) :: UEx,VEx
REALTYPE,dimension(E2DFIELD),intent(out),optional :: hsd_u,hsd_v
end subroutine uv_diff_2dh
Temporary interface (should be read from module):
subroutine get_2d_field(fn,varname,il,ih,jl,jh,break_on_missing,f)
character(len=*),intent(in) :: fn,varname
integer, intent(in) :: il,ih,jl,jh
logical, intent(in) :: break_on_missing
REALTYPE, intent(out) :: f(:,:)
end subroutine get_2d_field
end interface
PUBLIC DATA MEMBERS:
REALTYPE :: dtm
integer :: vel2d_adv_split=0
integer :: vel2d_adv_hor=1
REALTYPE :: Am=-_ONE_
method for specifying horizontal numerical diffusion coefficient
(0=const, 1=from named nc-file)
integer :: An_method=0
REALTYPE :: An_const=-_ONE_
character(LEN = PATH_MAX) :: An_file
integer :: MM=1,residual=-1
integer :: sealevel_check=0
logical :: bdy2d=.false.
integer :: bdyfmt_2d,bdytype,bdy2d_ramp=-1
character(len=PATH_MAX) :: bdyfile_2d
REAL_4B :: bdy_data(1500)
REAL_4B :: bdy_data_u(1500)
REAL_4B :: bdy_data_v(1500)
REAL_4B, allocatable :: bdy_times(:)
REVISION HISTORY:
Original author(s): Karsten Bolding & Hans BurchardLOCAL VARIABLES:
integer :: num_neighbors REALTYPE :: An_sum