reservoir Module


Uses

  • module~~reservoir~~UsesGraph module~reservoir reservoir module~utilities utilities module~reservoir->module~utilities

Used by

  • module~~reservoir~~UsedByGraph module~reservoir reservoir proc~terminate terminate proc~terminate->module~reservoir proc~initialise initialise proc~initialise->module~reservoir proc~runsubbasin runsubbasin proc~runsubbasin->module~reservoir proc~print_module_parameters print_module_parameters proc~print_module_parameters->module~reservoir proc~time_process_day time_process_day proc~time_process_day->module~reservoir

Contents


Variables

TypeVisibility AttributesNameInitial
real(kind=dp), public, dimension(:, :), allocatable:: Rsv
logical, public, save, dimension(:), allocatable:: bRsvHydrograph
logical, public, save:: bRsvModule =.false.
integer, public, save, dimension(:), allocatable:: inum4s
real(kind=dp), public, dimension(:), allocatable:: pd_area_wet
real(kind=dp), public, dimension(:), allocatable:: pd_et
real(kind=dp), public, dimension(:), allocatable:: pd_gwchrg
real(kind=dp), public, dimension(:), allocatable:: pd_gwq
real(kind=dp), public, dimension(:), allocatable:: pd_gwseep
real(kind=dp), public, dimension(:), allocatable:: pd_outflow
real(kind=dp), public, dimension(:), allocatable:: pd_seepage
real(kind=dp), public, dimension(:), allocatable:: pd_wysb
character(len=100), public, parameter:: reservoir_input_file ="reservoir.csv"
character(len=100), public, parameter:: reservoir_monthly_input_file ="reservoir_monthly.csv"
character(len=100), public, parameter:: reservoir_storage_input_file ="reservoir_storage.csv"
integer, public, save, dimension(:), allocatable:: rsvSubbasin
real(kind=dp), public, dimension(:), allocatable:: rsv_B
real(kind=dp), public, dimension(:, :), allocatable:: rsv_Cap_Act
real(kind=dp), public, dimension(:), allocatable:: rsv_Capac_Max
real(kind=dp), public, dimension(:), allocatable:: rsv_Day_Cap_Act
real(kind=dp), public, dimension(:), allocatable:: rsv_Day_Disch_Min
real(kind=dp), public, dimension(:), allocatable:: rsv_Day_Fill_Min
real(kind=dp), public, dimension(:), allocatable:: rsv_Day_ann_cycle
real(kind=dp), public, dimension(:, :), allocatable:: rsv_Dis_Min_Act
real(kind=dp), public, dimension(:, :), allocatable:: rsv_Dis_Min_Fill
real(kind=dp), public, dimension(:, :), allocatable:: rsv_Disch_Min
real(kind=dp), public, dimension(:, :), allocatable:: rsv_Fill_Min
real(kind=dp), public, dimension(:), allocatable:: rsv_Inflow
integer, public, dimension(:), allocatable:: rsv_Mngmt
real(kind=dp), public, dimension(:, :), allocatable:: rsv_Outflow
real(kind=dp), public, dimension(:), allocatable:: rsv_Prod_HPP
character(len=20), public, dimension(:), allocatable:: rsv_ResNames
integer, public, dimension(:), allocatable:: rsv_ResSubbasins
real(kind=dp), public, dimension(:), allocatable:: rsv_Start_Fill
real(kind=dp), public, dimension(:, :), allocatable:: rsv_Withdr_Mon
real(kind=dp), public, dimension(:), allocatable:: rsv_act_withdrawal
real(kind=dp), public, dimension(:), allocatable:: rsv_activate_thresh
logical, public, dimension(:), allocatable:: rsv_active
real(kind=dp), public, dimension(:, :), allocatable:: rsv_ann_cycle
real(kind=dp), public, dimension(:), allocatable:: rsv_cap_hpp
real(kind=dp), public, dimension(:), allocatable:: rsv_dead_stor_act
real(kind=dp), public, dimension(:), allocatable:: rsv_dead_stor_capac
real(kind=dp), public, dimension(:), allocatable:: rsv_eff_hpp
real(kind=dp), public, dimension(:), allocatable:: rsv_evapc
real(kind=dp), public, dimension(:), allocatable:: rsv_frac_sr
integer, public, save, dimension(:), allocatable:: rsv_funit
real(kind=dp), public, dimension(:), allocatable:: rsv_gwc
real(kind=dp), public, dimension(:), allocatable:: rsv_gwq
real(kind=dp), public, dimension(:), allocatable:: rsv_height_hpp
real(kind=dp), public, dimension(:), allocatable:: rsv_level_hpp
real(kind=dp), public, dimension(:), allocatable:: rsv_level_max
real(kind=dp), public, dimension(:), allocatable:: rsv_level_min
real(kind=dp), public, dimension(:), allocatable:: rsv_loss_seepage
integer, public :: rsv_nReservoirs
real(kind=dp), public, dimension(:, :), allocatable:: rsv_pol_A
real(kind=dp), public, dimension(:, :), allocatable:: rsv_pol_HP
real(kind=dp), public, dimension(:, :), allocatable:: rsv_pol_L
real(kind=dp), public, dimension(:, :), allocatable:: rsv_pol_L2
real(kind=dp), public, dimension(:, :), allocatable:: rsv_pol_V
real(kind=dp), public, dimension(:), allocatable:: rsv_seepage
real(kind=dp), public, dimension(:), allocatable:: rsv_shr_withdr
integer, public, dimension(:), allocatable:: rsv_start_day
integer, public, dimension(:), allocatable:: rsv_start_year
real(kind=dp), public, dimension(:), allocatable:: rsv_tot_area
real(kind=dp), public, dimension(:), allocatable:: rsv_water_level
real(kind=dp), public, save:: xwysb
real(kind=dp), public, save:: xxswind

Functions

public function et_turc(sub, humi, mo, omega, ra, tx)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: sub
real(kind=dp), intent(in), dimension(:):: humi
integer, intent(in) :: mo
real(kind=dp), intent(in), dimension(12):: omega
real(kind=dp), intent(in), dimension(:):: ra
real(kind=dp), intent(in), dimension(:):: tx

Return Value real(kind=dp)

public function reservoir_get(sub)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: sub

Return Value integer

public function reservoir_is_full_dead_storage(res)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: res

Return Value logical

public function reservoir_is_operational(year, day, sub)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: year
integer, intent(in) :: day
integer, intent(in) :: sub

Return Value logical

public function rsv_pol(k, xp, yp, xps)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: k
real(kind=dp), intent(in) :: xp(:)
real(kind=dp), intent(in) :: yp(:)
real(kind=dp), intent(in) :: xps

Return Value real(kind=dp)


Subroutines

public subroutine dealloc_reservoir()

Arguments

None

public subroutine fill_reservoir_array(lhs, rhs)

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(out), dimension(:, :):: lhs
real(kind=dp), intent(in), dimension(:):: rhs

public subroutine reservoir_allocate()

Arguments

None

public subroutine reservoir_allocate_reservoir(mb, mhyd)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: mb
integer, intent(in) :: mhyd

public subroutine reservoir_deallocate_reservoir()

Arguments

None

public subroutine reservoir_init_subbasin()

Arguments

None

public subroutine reservoir_initial_values()

Initialise parameters for first day necessary for subroutine Rsv_subbasin

Arguments

None

public subroutine reservoir_initialise(icodes, inum1s, mb, mhyd)

set reservoir subbasins of array rsvSubbasin

Read more…

Arguments

Type IntentOptional AttributesName
integer, intent(in), dimension(:):: icodes
integer, intent(in), dimension(:):: inum1s
integer, intent(in) :: mb
integer, intent(in) :: mhyd

public subroutine reservoir_open_output()

Read more…

Arguments

None

public subroutine reservoir_process(ih, in1, in2, ecal, humi, ida, iyr, mo, nc, omega, ra, subp, tx, varoute)

check if reservoir is active if not: set active if actual storage volume exceeds given threshold

Read more…

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: ih
integer, intent(in) :: in1
integer, intent(in) :: in2
real(kind=dp), intent(in), dimension(:):: ecal
real(kind=dp), intent(in), dimension(:):: humi
integer, intent(in) :: ida
integer, intent(in) :: iyr
integer, intent(in) :: mo
integer, intent(in), dimension(13):: nc
real(kind=dp), intent(in), dimension(12):: omega
real(kind=dp), intent(in), dimension(:):: ra
real(kind=dp), intent(in), dimension(:):: subp
real(kind=dp), intent(in), dimension(:):: tx
real(kind=dp), intent(inout), dimension(:, :):: varoute

public subroutine reservoir_read_control_file(mb, mhyd)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: mb
integer, intent(in) :: mhyd

public subroutine reservoir_read_month_file()

Arguments

None

public subroutine reservoir_read_storage_file()

Arguments

None

public subroutine reservoir_routing(icodes, inum1s, mb, mhyd)

Arguments

Type IntentOptional AttributesName
integer, intent(in), dimension(:):: icodes
integer, intent(in), dimension(:):: inum1s
integer, intent(in) :: mb
integer, intent(in) :: mhyd

public subroutine reservoir_subbasin(in1, da, aff, dart, flu, neap, precip, qtl, sbp, sda, smq, smsq, snowVal, sub, subp, sumcn, susb, tx, varoute, wysb, xeo, xpercn, xqi, xsep, xssf, xssfn, xswind, xyno3, xysp, yd, yon, yph)

remove ground water flow from shallow aquifer storage Ground water contribution is added to varoute(8, ) in RSV_Reservoir_processes pd_outflow is the total outflow from the reservoir in [mm] For surface and subsurface (subbasin) output it must be corrected on ground water contribution Otherwise, some water balance output files are accounting double The half is distributed to surface runoff and the other half to subsurface

Read more…

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: in1
real(kind=dp), intent(in) :: da
real(kind=dp), intent(out) :: aff
real(kind=dp), intent(in), dimension(:):: dart
real(kind=dp), intent(in), dimension(:):: flu
integer, intent(in), dimension(:):: neap
real(kind=dp), intent(inout) :: precip
real(kind=dp), intent(inout) :: qtl
real(kind=dp), intent(inout), dimension(:):: sbp
real(kind=dp), intent(inout), dimension(:, :):: sda
real(kind=dp), intent(inout), dimension(:):: smq
real(kind=dp), intent(inout), dimension(:):: smsq
real(kind=dp), intent(out) :: snowVal
real(kind=dp), intent(inout), dimension(30):: sub
real(kind=dp), intent(in), dimension(:):: subp
real(kind=dp), intent(in) :: sumcn
real(kind=dp), intent(inout), dimension(:, :):: susb
real(kind=dp), intent(in), dimension(:):: tx
real(kind=dp), intent(out), dimension(:, :):: varoute
real(kind=dp), intent(inout) :: wysb
real(kind=dp), intent(inout) :: xeo
real(kind=dp), intent(inout) :: xpercn
real(kind=dp), intent(out) :: xqi
real(kind=dp), intent(inout) :: xsep
real(kind=dp), intent(inout) :: xssf
real(kind=dp), intent(inout) :: xssfn
real(kind=dp), intent(inout) :: xswind
real(kind=dp), intent(inout) :: xyno3
real(kind=dp), intent(inout) :: xysp
real(kind=dp), intent(inout) :: yd
real(kind=dp), intent(inout) :: yon
real(kind=dp), intent(inout) :: yph