reservoir_process Subroutine

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




calculate daily data from monthly data rsv_Day_Cap_Act, rsv_Day_Fill_Min, Rsv_ann_cycle, rsv_Day_Disch_Min




calculate inflow volume to reservoir subbasin [m^3/d]



calculate seepage from reservoir [m^3/d]



calculate water level [m.a.s.l.] and flooded surface area [km^2]



calculate ETpot in [mm] and [m^3/d]



remove evaporation from actual and/or dead storage re-calculate actual storage volume Rsv(3, res) after cwb, evaporation in [m^3] re-calculate dead storage if necessary




as long as dead storage is not full, calc filling of dead storage and discharges downstream




calculate reservoir outflow Todo: Warum eigentlich hier?




if reservoir is operating


--------------------------------------------------------------------

--------------------------------------------------------------------

--------------------------------------------------------------------

--------------------------------------------------------------------

--------------------------------------------------------------------

--------------------------------------------------------------------

--------------------------------------------------------------------

--------------------------------------------------------------------

--------------------------------------------------------------------

--------------------------------------------------------------------

--------------------------------------------------------------------

--------------------------------------------------------------------

--------------------------------------------------------------------

Arguments

Type IntentOptional Attributes Name
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

Calls

proc~~reservoir_process~~CallsGraph proc~reservoir_process reservoir_process proc~day_of_month day_of_month proc~reservoir_process->proc~day_of_month proc~days_in_month days_in_month proc~reservoir_process->proc~days_in_month proc~et_turc et_turc proc~reservoir_process->proc~et_turc proc~log_error log_error proc~reservoir_process->proc~log_error proc~log_warn log_warn proc~reservoir_process->proc~log_warn proc~reservoir_get reservoir_get proc~reservoir_process->proc~reservoir_get proc~reservoir_is_full_dead_storage reservoir_is_full_dead_storage proc~reservoir_process->proc~reservoir_is_full_dead_storage proc~rsv_pol rsv_pol proc~reservoir_process->proc~rsv_pol proc~is_leap_year is_leap_year proc~day_of_month->proc~is_leap_year proc~days_in_month->proc~is_leap_year proc~log_message log_message proc~log_error->proc~log_message proc~log_warn->proc~log_message proc~log_format_message log_format_message proc~log_message->proc~log_format_message proc~log_write log_write proc~log_message->proc~log_write proc~colourise colourise proc~log_format_message->proc~colourise proc~date_time_str date_time_str proc~log_format_message->proc~date_time_str proc~to_string to_string proc~log_write->proc~to_string proc~string_index string_index proc~colourise->proc~string_index

Called by

proc~~reservoir_process~~CalledByGraph proc~reservoir_process reservoir_process proc~time_process_day time_process_day proc~time_process_day->proc~reservoir_process proc~time_process_month time_process_month proc~time_process_month->proc~time_process_day proc~time_process_years time_process_years proc~time_process_years->proc~time_process_month program~swim swim program~swim->proc~time_process_years