management_transfer_out Subroutine

public subroutine management_transfer_out(sub, surfaceR, subsurfaceR, day, ida, iyr)


check if flow values are negative


calculate available volume at subbains' outlet


If there is enough water to satisfy total demand of all users in subbasin


TSub (current subbasin)

add actual withdrawals of all water users from source subbasin


TWU (current water user)

calculate volume delivered to water user


Irrigation

!! pWU%supplied should not be added to %inflow, because the irrigation supply is added in hydrotope !! %inflow is added to sda or varoute in "subbasin" and/or "add"


! NOTE: the values of varoute(2, ihout) and varaoute(8, ihout) are modified here !!!


        *****

If there is NOT enough water to satisfy total demand of all users in subbasin *



TSub (current subbasin)


TWU (current water user)

add actual withdrawals of all water users from source subbasin


Irrigation

account for irrigation water users !! pWU%supplied should not be added to %inflow, because the irrigation supply is added in hydrotope !! %inflow is added to sda or varoute in "subbasin" and/or "add"


! NOTE: the values of varoute(2, ihout) and varaoute(8, ihout) are modified here !!!

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: sub
real(kind=dp), intent(inout) :: surfaceR
real(kind=dp), intent(inout) :: subsurfaceR
integer, intent(in) :: day
integer, intent(in) :: ida
integer, intent(in) :: iyr

Calls

proc~~management_transfer_out~~CallsGraph proc~management_transfer_out management_transfer_out proc~log_warn log_warn proc~management_transfer_out->proc~log_warn proc~management_is_active_period management_is_active_period proc~management_transfer_out->proc~management_is_active_period proc~management_subbasin_pointer management_subbasin_pointer proc~management_transfer_out->proc~management_subbasin_pointer proc~management_user_pointer management_user_pointer proc~management_transfer_out->proc~management_user_pointer proc~log_message log_message proc~log_warn->proc~log_message proc~log_error log_error proc~management_user_pointer->proc~log_error proc~log_error->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~~management_transfer_out~~CalledByGraph proc~management_transfer_out management_transfer_out proc~river_route_add river_route_add proc~river_route_add->proc~management_transfer_out proc~runsubbasin runsubbasin proc~runsubbasin->proc~management_transfer_out proc~time_process_day time_process_day proc~time_process_day->proc~river_route_add proc~time_process_day->proc~runsubbasin 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