river Module


Uses

  • module~~river~~UsesGraph module~river river module~utilities utilities module~river->module~utilities

Used by

  • module~~river~~UsedByGraph module~river river proc~catchment_assign_subcatch catchment_assign_subcatch proc~catchment_assign_subcatch->module~river proc~catchment_initialise_subcatchm catchment_initialise_subcatchm proc~catchment_initialise_subcatchm->module~river proc~catchment_read_subcatch_params catchment_read_subcatch_params proc~catchment_read_subcatch_params->module~river proc~initialise initialise proc~initialise->module~river proc~print_module_parameters print_module_parameters proc~print_module_parameters->module~river proc~runsubbasin runsubbasin proc~runsubbasin->module~river proc~terminate terminate proc~terminate->module~river proc~time_process_day time_process_day proc~time_process_day->module~river

Variables

Type Visibility Attributes Name Initial
real(kind=dp), public, save, dimension(10) :: accf = 0.
real(kind=dp), public, save, dimension(:), allocatable :: bsn_roc2
real(kind=dp), public, save, dimension(:), allocatable :: bsn_roc4
real(kind=dp), public, save, allocatable, dimension(:) :: c1_qd
real(kind=dp), public, save, allocatable, dimension(:) :: c1_ssf
real(kind=dp), public, save, allocatable, dimension(:) :: c2_qd
real(kind=dp), public, save, allocatable, dimension(:) :: c2_ssf
real(kind=dp), public, save, allocatable, dimension(:) :: c3_qd
real(kind=dp), public, save, allocatable, dimension(:) :: c3_ssf
real(kind=dp), public, save, allocatable, dimension(:) :: c4_qd
real(kind=dp), public, save, allocatable, dimension(:) :: c4_ssf
real(kind=dp), public, save, dimension(:), allocatable :: chd
real(kind=dp), public, save, dimension(:, :), allocatable :: chk
real(kind=dp), public, save, dimension(:, :), allocatable :: chl
real(kind=dp), public, save, dimension(:), allocatable :: chn
real(kind=dp), public, save, dimension(:), allocatable :: chnn
real(kind=dp), public, save :: chnnc0 = 1.
real(kind=dp), public, save, dimension(:), allocatable :: chs
real(kind=dp), public, save, dimension(:), allocatable :: chss
real(kind=dp), public, save, dimension(:, :), allocatable :: chw
real(kind=dp), public, save :: chwc0 = 1.
real(kind=dp), public, save :: diver
real(kind=dp), public, save :: evp
real(kind=dp), public, save :: evrch = 1.
real(kind=dp), public, save, dimension(:), allocatable :: ovn
real(kind=dp), public, save, dimension(:), allocatable :: pet_day
real(kind=dp), public, save, dimension(:, :), allocatable :: phi
real(kind=dp), public, save :: prf = 1.
real(kind=dp), public, save, dimension(:), allocatable :: qdilast
real(kind=dp), public, save, dimension(:, :), allocatable :: qdinp
real(kind=dp), public, save, dimension(:), allocatable :: qdolast
real(kind=dp), public, save, dimension(:, :), allocatable :: qdout
real(kind=dp), public, save, dimension(:), allocatable :: qsilast
real(kind=dp), public, save, dimension(:), allocatable :: qsolast
real(kind=dp), public, save, dimension(:, :), allocatable :: qssinp
real(kind=dp), public, save, dimension(:, :), allocatable :: qssout
real(kind=dp), public, save :: rflow
integer, public :: river_discharge_output_id = 0
real(kind=dp), public, save :: rl
real(kind=dp), public, save :: roc1
real(kind=dp), public, save, dimension(:), allocatable :: roc2
real(kind=dp), public :: roc2_0 = 9.
real(kind=dp), public, save :: roc3
real(kind=dp), public, save, dimension(:), allocatable :: roc4
real(kind=dp), public :: roc4_0 = 9.
real(kind=dp), public, save, dimension(:), allocatable :: rt
real(kind=dp), public, save, dimension(:), allocatable :: runsub_m3s
real(kind=dp), public, save :: sdti
real(kind=dp), public, save, dimension(:), allocatable :: sdtsav
real(kind=dp), public, save :: spcon
real(kind=dp), public, save :: spexp = 1.
real(kind=dp), public, save, dimension(:, :), allocatable :: srch
real(kind=dp), public, save :: storc1 = 0.5
real(kind=dp), public, save :: tlc
integer, public, save :: tlgw = 0
real(kind=dp), public, save :: tlrch = 1.
real(kind=dp), public, save, dimension(:, :), allocatable :: varoute
real(kind=dp), public, save, allocatable, dimension(:) :: xkm_qd
real(kind=dp), public, save, allocatable, dimension(:) :: xkm_ssf
real(kind=dp), public, save :: xxnit
real(kind=dp), public, save :: xxqd
real(kind=dp), public, save :: xxssf
real(kind=dp), public, save :: ydi

Functions

public function river_mannings_discharge(a, rh, xn, chslope)

Arguments

Type IntentOptional Attributes Name
real(kind=dp) :: a
real(kind=dp) :: rh
real(kind=dp) :: xn
real(kind=dp) :: chslope

Return Value real(kind=dp)


Subroutines

public subroutine dealloc_river()

Arguments

None

public subroutine river_allocate(mb, mch, mhyd)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: mb
integer, intent(in) :: mch
integer, intent(in) :: mhyd

public subroutine river_allocate_subcatch(n_subcatch)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n_subcatch

public subroutine river_erosion_enritchment_ratio(inum1, da9, er, yd)

Arguments

Type IntentOptional Attributes Name
integer :: inum1
real(kind=dp), intent(in) :: da9
real(kind=dp), intent(inout) :: er
real(kind=dp), intent(in) :: yd

public subroutine river_initialise(mb, mch, mhyd, subbasin_input_file_id)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: mb
integer, intent(in) :: mch
integer, intent(in) :: mhyd
integer, intent(in) :: subbasin_input_file_id

public subroutine river_initialise_travel_time(mb)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: mb

public subroutine river_muskingum_routing(j, ihout, inum1, ida, iy, iyr)

!!!! DO NOT ALLOW NEGATIVE FLOWS !!!! This shouldn't be a long-term solution but an attempt to make the user aware of !!!! obviously wrong parameter settings

Arguments

Type IntentOptional Attributes Name
integer :: j
integer :: ihout
integer :: inum1
integer, intent(in) :: ida
integer, intent(in) :: iy
integer, intent(in) :: iyr

public subroutine river_muskingum_travel_time(j)

Arguments

Type IntentOptional Attributes Name
integer :: j

public subroutine river_read_input(subbasin_input_file_id)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: subbasin_input_file_id

public subroutine river_route(ihout, inum1, inum2, chc, chxk, conn, cpp, da9, dart, er, flu, ida, iy, iyr, revapst, runs, sbar, sub, susb, xysp, yd, yon, yph)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ihout
integer, intent(in) :: inum1
integer, intent(in) :: inum2
real(kind=dp), intent(in), dimension(:) :: chc
real(kind=dp), intent(in), dimension(:) :: chxk
real(kind=dp), intent(in) :: conn
real(kind=dp), intent(in) :: cpp
real(kind=dp), intent(in) :: da9
real(kind=dp), intent(in), dimension(:) :: dart
real(kind=dp), intent(inout) :: er
real(kind=dp), intent(in), dimension(:) :: flu
integer, intent(in) :: ida
integer, intent(in) :: iy
integer, intent(in) :: iyr
real(kind=dp), intent(inout), dimension(:) :: revapst
real(kind=dp), intent(inout), dimension(366) :: runs
real(kind=dp), intent(in), dimension(:) :: sbar
real(kind=dp), intent(inout), dimension(30) :: sub
real(kind=dp), intent(inout), dimension(:, :) :: susb
real(kind=dp), intent(inout) :: xysp
real(kind=dp), intent(inout) :: yd
real(kind=dp), intent(inout) :: yon
real(kind=dp), intent(inout) :: yph

public subroutine river_route_add(bRunoffdat, ihout, inum1, inum2, additionalGwUptake, bWAM_Module, daycounter, ida, iyr, mb, nqobs, obssb, obs_discharge, runs, subouthyd, inum1s, bRsvModule, rsv_is_operational, rsvSubbasin)

Withdraw water from subbasin outlet but only if subbasin is not a headwater .and. not a reservoir.

Read more…

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: bRunoffdat
integer, intent(in) :: ihout
integer, intent(in) :: inum1
integer, intent(in) :: inum2
real(kind=dp), intent(out), dimension(:) :: additionalGwUptake
logical, intent(in) :: bWAM_Module
integer, intent(in) :: daycounter
integer, intent(in) :: ida
integer, intent(in) :: iyr
integer, intent(in) :: mb
integer, intent(in) :: nqobs
integer, intent(in), dimension(100) :: obssb
real(kind=dp), intent(in), dimension(:, :) :: obs_discharge
real(kind=dp), intent(inout), dimension(366) :: runs
integer, intent(in), dimension(:) :: subouthyd
integer, intent(in), dimension(:) :: inum1s
logical, intent(in) :: bRsvModule
logical, intent(in) :: rsv_is_operational
integer, intent(in), dimension(:) :: rsvSubbasin

public subroutine river_route_erosion(j, inum1, chc, chxk, yd)

Arguments

Type IntentOptional Attributes Name
integer :: j
integer :: inum1
real(kind=dp), intent(in), dimension(:) :: chc
real(kind=dp), intent(in), dimension(:) :: chxk
real(kind=dp), intent(inout) :: yd

public subroutine river_route_nitrate(conn, da9, er, yon)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: conn
real(kind=dp), intent(in) :: da9
real(kind=dp), intent(in) :: er
real(kind=dp), intent(out) :: yon

public subroutine river_route_phosphorus(cpp, da9, yph)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: cpp
real(kind=dp), intent(in) :: da9
real(kind=dp), intent(out) :: yph

public subroutine river_transfer()

Arguments

None

public subroutine river_transmission_loss(j)

this is the time to empty the volume of water at the bankfull Q perform flood plain simulation increase Q in flood plain until all the volume can be emptied in one day 1 cm interval find the cross sectional area and depth for volrt 1 cm interval depth calculate width of channel at water level

Arguments

Type IntentOptional Attributes Name
integer :: j

public subroutine river_travel_time_coefficients(qq1, q2, tt1, tt2, p1, pp2)

Arguments

Type IntentOptional Attributes Name
real(kind=dp) :: qq1
real(kind=dp) :: q2
real(kind=dp) :: tt1
real(kind=dp) :: tt2
real(kind=dp) :: p1
real(kind=dp) :: pp2