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 interfacePUBLIC 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