INTERFACE:
module riversDESCRIPTION:
This module includes support for river input. Rivers are treated the same way as meteorology, i.e. as external module to the hydrodynamic model itself. The module follows the same scheme as all other modules, i.e. init_rivers sets up necessary information, and do_rivers updates the relevant variables. do_river is called in getm/integration.F90 between the 2d and 3d routines as it only updates the sea surface elevation (in 2d) and sea surface elevation, and optionally salinity and temperature (in 3d). At present the momentum of the river water is not include, the model however has a direct response to the river water because of the pressure gradient introduced. USES:
use domain, only: imin,jmin,imax,jmax,ioff,joff
#if defined(SPHERICAL) || defined(CURVILINEAR)
use domain, only: H,az,kmax,arcd1
#else
use domain, only: H,az,kmax,ard1
#endif
use m2d, only: dtm
use variables_2d, only: z
#ifndef NO_BAROCLINIC
use m3d, only: calc_salt,calc_temp
use variables_3d, only: hn,ssen,T,S
#endif
#ifdef GETM_BIO
use bio, only: bio_calc
use bio_var, only: numc
use variables_3d, only: cc3d
#endif
#ifdef _FABM_
use getm_fabm, only: model,fabm_pel
#endif
IMPLICIT NONE
private
PUBLIC DATA MEMBERS:
public init_rivers, do_rivers, clean_rivers
#ifdef GETM_BIO
public init_rivers_bio
#endif
#ifdef _FABM_
public init_rivers_fabm
#endif
integer, public :: river_method=0,nriver=0,rriver=0
logical,public :: use_river_temp = .false.
logical,public :: use_river_salt = .false.
character(len=64), public :: river_data="rivers.nc"
character(len=64), public, allocatable :: river_name(:)
character(len=64), public, allocatable :: real_river_name(:)
integer, public, allocatable :: ok(:)
REALTYPE, public, allocatable :: river_flow(:)
REALTYPE, public, allocatable :: river_salt(:)
REALTYPE, public, allocatable :: river_temp(:)
integer, public :: river_ramp= -1
REALTYPE, public :: river_factor= _ONE_
REALTYPE, public,parameter :: temp_missing=-9999.0
REALTYPE, public,parameter :: salt_missing=-9999.0
integer, public, allocatable :: river_split(:)
#ifdef GETM_BIO
REALTYPE, public, allocatable :: river_bio(:,:)
REALTYPE, public, parameter :: bio_missing=-9999.0
#endif
#ifdef _FABM_
REALTYPE, public, allocatable :: river_fabm(:,:)
#endif
!PRIVATE DATA MEMBERS:
integer :: river_format=2
character(len=64) :: river_info="riverinfo.dat"
integer, allocatable :: ir(:),jr(:)
REALTYPE, allocatable :: rzl(:),rzu(:)
REALTYPE, allocatable :: irr(:)
REALTYPE, allocatable :: macro_height(:)
REALTYPE, allocatable :: flow_fraction(:),flow_fraction_rel(:)
logical :: river_outflow_properties_follow_source_cell=.true.
REVISION HISTORY:
Original author(s): Karsten Bolding & Hans Burchard