INTERFACE:
module domainDESCRIPTION:
This module provides all variables related to the bathymetry and
model grid. The public subroutine
is called once
and upon successful completion the bathymetry has been read and
optionally modified, the calculation masks have been setup and
all grid related variables have been initialised.
The -module depends on another module doing the actual
reading of variables from files. This is provided through the
generic subroutine
. This subroutine takes two
parameters - 1) a fileformat and 2) a filename. Adding a new
input file format is thus straight forward and can be done
without any changes to .
Public variables defined in this module is used through out the
code.
USES:
use exceptions use halo_zones, only: update_2d_halo,wait_halo use halo_zones, only: H_TAG,U_TAG,V_TAG IMPLICIT NONEPUBLIC DATA MEMBERS:
integer :: bathy_format = NETCDF integer :: grid_type = 1 integer :: vert_cord = 1 integer :: il=-1,ih=-1,jl=-1,jh=-1 global index range integer :: ilg=-1,ihg=-1,jlg=-1,jhg=-1 local index range integer :: ill=-1,ihl=-1,jll=-1,jhl=-1 logical :: have_lonlat = .true. logical :: have_xy = .true. REALTYPE :: rearth REALTYPE :: maxdepth = -1. REALTYPE :: ddu = -_ONE_ REALTYPE :: ddl = -_ONE_ REALTYPE :: d_gamma = 20. logical :: gamma_surf = .true. REALTYPE, allocatable, dimension(:) :: ga integer :: NWB=-1,NNB=-1,NEB=-1,NSB=-1,NOB integer :: calc_points logical :: openbdy = .false. REALTYPE :: Hland=-10.0 REALTYPE :: min_depth,crit_depth REALTYPE :: longitude = _ZERO_ REALTYPE :: latitude = _ZERO_ logical :: f_plane = .true. logical :: check_cfl = .true. #ifdef STATIC #include "static_domain.h" #else #include "dynamic_declarations_domain.h" #endif integer :: nsbv integer :: ioff=0,joff=0 integer, dimension(:), allocatable :: bdy_2d_type integer, dimension(:), allocatable :: bdy_3d_type integer, dimension(:), allocatable :: wi,wfj,wlj integer, dimension(:), allocatable :: nj,nfi,nli integer, dimension(:), allocatable :: ei,efj,elj integer, dimension(:), allocatable :: sj,sfi,sli integer, allocatable :: bdy_index(:),bdy_map(:,:) logical :: have_boundaries=.false. character(len=64) :: bdy_2d_desc(5) logical :: need_2d_bdy_elev = .false. logical :: need_2d_bdy_u = .false. logical :: need_2d_bdy_v = .false. REALTYPE :: cori= _ZERO_ method for specifying bottom roughness (0=const, 1=from topo.nc) integer :: z0_method=0 REALTYPE :: z0_const=0.01d0DEFINED PARAMETERS:
integer, parameter :: INNER = 1 REALTYPE, private, parameter :: pi = 3.141592654 REALTYPE, private, parameter :: deg2rad = pi/180. REALTYPE, private, parameter :: omega = 2.*pi/86164.REVISION HISTORY:
Original author(s): Karsten Bolding & Hans BurchardLOCAL VARIABLES:
REALTYPE, parameter :: rearth_default = 6378815.