Description
|
Minimum Inflow required to meet all diversion requests and resulting Outflow.
|
Type
|
LIST {NUMERIC, NUMERIC}
|
Arguments
|
Type
|
Meaning
|
1
|
LIST
|
the subbasin’s Reach and Confluence objects in downstream order (can be included in a subbasin)
|
2
|
DATETIME
|
the timestep at which to calculate
|
Evaluation
|
The subbasin diversion requirement is originally set to zero. Each of the objects in the subbasin list is processed in the downstream order in which they are provided. If the object is a Reach, the following calculations are performed:
-
If an Aggregate Diversion Site is linked to the Reach’s
Diversion
slot, the NetNonShortDiversionRequirement function is executed on the diversion. This determines the diversion requirement from the Reach.
-
If an Aggregate Diversion Site is linked to the Reach’s
Diversion
slot, the minimum flow just below the diversion point is determined from the Reach’s
Minimum Diversion Bypass
slot. If this slot does not exist because of the selected User Method in the
Minimum Diversion Bypass
Method Category, the minimum flow requirement is zero.
-
If nothing is linked to the
Diversion
slot, but a value exists in the slot, this value is assumed to be the diversion requirement for this reach. In this case, there is no minimum flow requirement below the diversion point.
-
The subbasin diversion requirement is recalculated as the greater of the previous subbasin diversion requirement or the Reach diversion requirement plus the minimum flow requirement plus any cumulative upstream diversions minus any cumulative upstream return flows minus any cumulative upstream tributary inflows.
-
Any
Local Inflow
to the Reach is added to the cumulative tributary inflows.
-
If the
Return Flow
slot has a valid value, it is added to the cumulative return flows. If the
Return Flow
slot does not have a valid value, but a Water User or an Aggregate Diversion Site object is linked to it, the return flow is estimated. Return flow is estimated by subtracting the object’s (
Total
)
Depletion Requested
from its (
Total
)
Diversion Requested
. The estimated return flow is then added to the cumulative return flows. If
Depletion Requested
is not specified, it will be set equal to
Diversion Requested
.
|
|
If the object is a Confluence, the
Inflow1
and
Inflow2
slots are checked to determine which is the main subbasin flow and which is the tributary inflow. The objects linked to the inflow slots are checked against the last Reach object to be processed. When a match is found, the other
Inflow
, if valid, is added to the cumulative tributary inflows.
The loop continues until all objects in the list have been processed. The largest subbasin diversion requirement to have been calculated at any diversion point is the total subbasin diversion requirement.
|
Mathematical Expression
|
|
Comments
|
This function exits its calling rule with an early termination if any of the required data used to solve the diversions are unknown.
The required data is the same as that needed for the NetNonShortDiversionRequirement predefined function for each Aggregate Diversion Site along the subbasin.
This function aborts the run with an error if an object other than a Reach or Confluence is in the subbasin list. One of the Confluence
Inflows
must be linked to the previous Reach object upstream, or an Aggregate Reach which contains the previous Reach object upstream as its last element. If this condition is not met, the Confluence cannot determine which slot is the tributary inflow and the function aborts the run with an error.
|
Comments
(Cont.)
|
All subbasin diversion requirement calculations are performed at the given timestep. Subbasin diversion requirement will not be correct if there are lags in Reaches. This predefined function is recommended for use in long timestep models or for subbasins where there is no lag between top and bottom.
|