skip to main content
Reservoir Methods
Objects and Methods
Reservoir Methods
User Methods
This section describes user methods that can be used in modeling the following reservoir objects:
Energy in Storage
The methods available in the Energy in Storage category are used to calculate the total energy that could be produced by the water stored in the reservoir.
* None
Chosen if the user does not want to calculate the Energy In Storage. No slots are specifically associated with this method. This method performs no calculations.
* EIS Table Lookup
The EIS TableLookup method obtains the amount of Energy In Storage from a table of Pool Elevation vs. Energy In Storage values and the Pool Elevation.
Slots Specific to This Method
Energy In Storage
Type: AggSeriesSlot
Units: ENERGY
Description: Energy In Storage in the Reservoir
Information:  
I/O: Output only
Energy In Storage Table
Type: TableSlot
Units: LENGTH vs. ENERGY
Description: Pool Elevation vs. Energy In Storage In the Reservoir
Information:  
I/O: Required input
The calculations involved with this method are very simple. The Pool Elevation for the current timestep is used to determine the Energy In Storage using the Energy In Storage Table. Simple linear interpolation is used.
* EIS Table Lookup with Cons Pool
This method will be available only when the Conservation Pool or Conservation and Flood Pools method in the Operating Levels category is selected.
Slots Specific to This Method
Energy In Storage
Type: AggSeriesSlot
Units: ENERGY
Description: Energy In Storage in the Reservoir
Information:  
I/O: Output only
Energy In Storage Table
Type: TableSlot
Units: LENGTH vs. ENERGY
Description: Pool Elevation vs. Energy In Storage In the Reservoir
Information:  
I/O: Required input
Conservation Pool Full EIS
Type: Series Slot
Units: MWH
Description: The EIS at the Top of the Conservation Pool
Information:  
I/O: Output Only
The method is executed at the end of each dispatch method.
The Pool Elevation for the timestep is looked up in Energy In Storage Table. Simple linear interpolation is used. The resulting Energy in Storage is then set on the slot.
Next, the Conservation Pool Full EIS is calculated as follows:
Note:  In the equation, the appropriate Operating Level Table will be used based on the timestep and the computation in the selected method in the Conditional Operating Levels category.
Spill
The Spill methods, except the Monthly Spill, calculate the Spill from Reservoirs based on several possible physical combinations of controlled and uncontrolled spillways. (See “Monthly Spill” for details about the Monthly Spill.)
The Regulated Spill and Bypass slots are regulated (i.e. controlled) spill structures. Values in these two slots can be specified by the user via inputs or rules. Each slot accommodates spill up to the maximum amount as specified by its rating table (Regulated Spill Table and Bypass Table). Unregulated Spill is an uncontrolled spill. Therefore, it is always a computed output based on the average Pool Elevation of the reservoir as specified in the Unregulated Spill Table. Thus, the user selects a Spill method based on the combination of structures (Regulated Spill, Bypass, and/or Unregulated Spill) that exist on the reservoir and the level of granularity desired.
The total Spill slot is the sum of the individual spills from each structure. Spills are calculated twice for each timestep. The first time a Spill method is called from a dispatch method, it checks for user inputs, calculates any Unregulated Spill, and sets the spill to zero for Regulated Spill and Bypass structures where there is no user-specified value. The total Spill is then calculated and returned to the dispatch method. The dispatch method determines (Turbine) Release by subtracting the Spill from Outflow, and executes the user-specified power calculation method. (On the power reservoirs, the slot is called Turbine Release, on the storage reservoir, the slot is called Release. In this description, we use the term (Turbine) Release.) If the (Turbine) Release cannot be met in the power calculation method, a second call is made to the spill calculation method. The excess flow is then distributed among the Regulated Spill and/or Bypass structures which have available capacity. If both Regulated Spill and Bypass are available, excess spill is typically first discharged through the Regulated Spill (except when the Bypass, Regulated and Unregulated method is selected; for this method the Bypass gets spill first).
The optional DRIFT flag is available on the Regulated Spill and Bypass slots. When the DRIFT flag is set for several sequential timesteps, the method models varying flow through a set spillway gate in response to fluctuations in Pool Elevation. The first timestep prior to initializing drift is used to determine a gate index called Regulated (or Bypass) Drift Index. This index is interpolated from the 3-dimensional Regulated (or Bypass) Spill Index Table, which relates Pool Elevation to Spill for several gate indexes. In the subsequent timesteps where the DRIFT flag is set, the same index is used to find the spill value at the current average Pool Elevation. The gate index is maintained throughout the selected time period. At each timestep, a new value of spill is calculated for the structure based on the current Pool Elevation. Specifying DRIFT is considered an input, and may affect over determination of spill parameters.
* None
None is used if Spill should not be modeled. In this method, the Spill slot on the reservoir is set equal to zero. All releases must be through the (Turbine) Release.
Slots Specific to This Method
• None
This method sets the Spill to zero and performs no further calculations. If the method is being called for the second time in a timestep because there is excess outflow that won’t fit through (Turbine) Release, an error will be posted which states, “No Spillways Available.” In this case, either decrease the Outflow or select a different spill method.
* Monthly Spill
The Monthly Spill method is only appropriate for use in long timestep models where Reservoir fluctuations over the timestep cannot be accurately determined.
Note:  There is no physical (head dependent) basis to the spill in this method. In this method, there are three components to the spill: unregulated, regulated and bypass. Both Regulated Spill and Bypass are considered controlled releases. A Maximum Controlled Release must be specified by the user.
Any additional Outflow is immediately categorized as Unregulated Spill.
Bypass may be specified as a user input. If not input, RiverWare sets this slot to zero. Regulated Spill is always computed by RiverWare. It is set to zero unless the Reservoir cannot release the Outflow through the Release and Bypass. When this occurs, the additional portion of the Outflow is released through the Regulated Spill.
Slots Specific to This Method
Bypass
Type: Series Slot
Units: FLOW
Description: flow through the Bypass spillway
Information:  
I/O: Optional; may be input by the user or set to zero by RiverWare.
Maximum Controlled Release
Type: Table Slot
Units: FLOW
Description: the maximum amount of Turbine Flow, Regulated Spill, and Bypass
Information: 1X1 table slot
I/O: Required input
Regulated Spill
Type: Series Slot
Units: FLOW
Description: excess Outflow not released through the turbine(s)
Information:  
I/O: Output only
Unregulated Spill
Type: Series Slot
Units: FLOW
Description: Outflow in excess of the Maximum Controlled Release
Information:  
I/O: Output only
Initially, the Monthly Spill method is called before Release has been calculated. If the Outflow is greater than the Maximum Controlled Release, Unregulated Spill is set as follows:
If the Outflow is less than the Maximum Controlled Release, Unregulated Spill is set to zero. In both cases, all of the following evaluations are also made:
After Release is calculated, the Monthly Spill method may be called a second time. The method is called a second time if the Release cannot accommodate the remaining portion of the Outflow, as follows:
Remember that Unregulated Spill was calculated before the Release was calculated.
If this occurs, Regulated Spill and Spill are reevaluated as follows:
* Unregulated
The Unregulated spill method models a single uncontrolled spillway called Unregulated Spill. The Unregulated Spill is a function of the average reservoir Pool Elevation. Because it is uncontrolled, it takes precedence (i.e. water goes through it first) over other types of outflow (i.e. Release or Turbine Release) in the reservoir. When this method is chosen the user category Unregulated Spill Type will appear.
The user may not specify (input or via rules) any spill slots with this method.
Slots Specific to This Method
Unregulated Spill
Type: Series Slot
Units: FLOW
Description: spill corresponding to the average Pool Elevation over the timestep
Information:  
I/O: Output only
Unregulated Spill Capacity Fraction
Type: Series Slot
Units: Decimal
Description: The fraction of the Unregulated Spill structure that is available.
Information: If not input or set by a rule, it defaults to 1.0. The value must be between 0.0 and 1.0, inclusive. Example: if 50 ft of a 1000 ft long crest is blocked, the Unregulated Spill Capacity Fraction would be input to 0.95.
I/O: Input, set by a rule, or output
Unregulated Spill Table
Type: Table Slot
Units: LENGTH vs. FLOW
Description: Pool Elevation versus corresponding Unregulated Spill values
Information: Must contain a row which corresponds to a spill of zero for interpolation purposes.
I/O: Required input
When the Unregulated spill method is called for the first time within a dispatch method, Unregulated Spill is calculated and Spill is set equal to Unregulated Spill. This computation is performed based on the selected method described in the “Unregulated Spill Type” category.
The Unregulated spill method will be called a second time (after the (Turbine) Release has been calculated) only if the sum of (Turbine) Release and Spill are less than Outflow. When this is the case, an error which reads, “Outflow greater than spillway capacities and Release” is posted because the excess Spill cannot be incorporated.
* Regulated
The Regulated spill method models Spill using one controlled spillway called Regulated Spill. Because the spill is controlled, the spill may be any value between zero and the maximum possible regulated spill for that pool elevation. The user may specify (input or via rules) one of the following:
• No slots
• Spill or
• Regulated Spill
If either is specified and there is excess flow which cannot be met by the (Turbine) Release, a RiverWare error will be flagged and the simulation halted.
Slots Specific to This Method
Regulated Spill
Type: Series Slot
Units: FLOW
Description: flow through the regulated spillway
Information:  
I/O: Optional; may be input by the user or determined by RiverWare. If Regulated Spill is input by the user and the value is less than the required spill, a RiverWare error is flagged and the simulation is halted.
Regulated Spill Capacity Fraction
Type: Series Slot
Units: Decimal
Description: The fraction of the Regulated Spill structure that is available.
Information: If not input or set by a rule, it defaults to 1.0. The value must be between 0.0 and 1.0, inclusive. Example: if 1 of 8 gates are unavailable, the Regulated Spill Capacity Fraction would be input to 0.875.
I/O: Input, set by a rule, or output
Regulated Spill Drift Index
Type: Series Slot
Units: NONE
Description: gate setting index
Information: If the user has set the DRIFT flag on the Regulated Spill slot, the gate setting index from the previous timestep is maintained.
I/O: Optional; if not set by the user, the index is calculated from the Regulated Spill Index Table.
Regulated Spill Table
Type: Table Slot
Units: LENGTH vs. FLOW
Description: Pool Elevation vs. corresponding Maximum Regulated Spill values
Information:  
I/O: Required input
Regulated Spill Index Table
Type: Table Slot
Units: NOUNITS vs. LENGTH vs. FLOW
Description: Gate Index vs. Pool Elevation vs. Regulated Spill
Information: Data must be entered into the table in increasing blocks of the same Gate Index value for the 3-dimensional table interpolator to work correctly. For every block of same gate indexes in column 1, Pool Elevations should be listed in increasing order in column 2, and the corresponding Spills in column 3. Following is an example of the proper way to formulate the Regulated Spill Index Table.
 
Gate Index
Pool Elevation
Spill
2
500
110
2
550
160
2
600
210
3
500
120
3
550
170
3
600
220
4
500
130
4
550
180
4
600
230
I/O: Optional; if the user sets the DRIFT flag on the Regulated Spill slot, this data table must be provided.
Note:  Regulated Spill and Spill are both outputs if neither is specified by the user. Only one of these slots, however, can be specified on a given timestep. When this is the case, the other slot will be output.
The first step in the Regulated spill method is to obtain the minRegSpill. If the Closed Gate Overflow method is selected, the minRegSpill is computed; see “Closed Gate Overflow” for details. If not, the minRegSpill is zero. Next, the maximum regulated spill, maxRegSpill is computed by looking up the average pool elevation (i.e. the average of the current Pool Elevation estimate and the previous Pool Elevation) on the Regulated Spill Table. Then the Regulated Spill Capacity Fraction and minRegSpill are applied as follows:
Release is then checked to see if it has been calculated. If Release is not known, it means that the method is being called for the first time for the particular timestep and the following steps are taken.
1. If both the Spill and Regulated Spill are input (remember setting a DRIFT flag is considered an input), a RiverWare error is flagged and the run is aborted.
2. If Spill is input by the user, and it is greater than the maxRegSpill or less than the minRegSpill, a RiverWare error is posted. Otherwise, Regulated Spill is set equal to Spill.
3. If Regulated Spill is input/rules by the user and the DRIFT flag is set, a function is called to perform the drift calculations. A description of the DRIFT function is given at the end of this method description. If Regulated Spill is input and greater than the maxRegSpill or less than the minRegSpill, a RiverWare error is posted. Otherwise, Spill is set equal to the Regulated Spill.
4. If neither Regulated Spill nor Spill are input, they are both set equal to the minRegSpill.
After Release has been calculated, the Regulated spill function may be called a second time if the sum of Release and Spill is less than the Outflow.
The following calculations and evaluations are performed if the function is called for the second time.
1. If either Spill or Regulated Spill are input, a RiverWare error is posted stating that RiverWare is unable to allocate the excess flow and the run is aborted.
2. Regulated Spill is set equal to the Outflow minus the Release. If Regulated Spill is greater than the maxRegSpill, a RiverWare error is flagged informing the user that Outflow is greater than the spillway capacities and Release and the run is aborted.
3. Spill is set equal to Regulated Spill.
Drift Calculations
The drift function is used to calculate Regulated Spill at a specific timestep if it is flagged DRIFT. If the current timestep’s Regulated Drift Index is not known, but the previous timestep’s Regulated Drift Index is known, the current Regulated Drift Index is set equal to the previous timestep’s Regulated Drift Index.
The Drift tables assume that the full spill works is available. Therefore, if there is a Capacity Fraction that is less than 1.0, the Drift calculation (for both regulated and bypass) must be modified.
Figure 29.1   
With the Drift flag is set, if there is a valid Capacity Fraction[t-1] that is not equal to 1.0, then the Capacity Fraction[t] is set to the previous value, but not overwriting inputs or rule values. This causes the Capacity Fraction to remain throughout the drift operation unless it is changed via a new user input. The screenshot to the right shows a sample run. The Capacity fraction is set to 0.75 on 5/12 18:00 and that value remains until a new value is set via user input on 5/13 18:00. Although this set of inputs may not make physical or operations sense, is shows how the algorithm would perform given the inputs shown.
The current Regulated Drift Index is then used in conjunction with the average Pool Elevation over the current timestep and the Regulated Spill Index Table to obtain the current timestep’s Regulated Spill.
If it is the first DRIFT timestep, a Gate Index must be calculated. This is done by using an average of the Pool Elevation at t-2 (when available) and at t-1, the previous regulated spill, the greatest and least spill values, and the Regulated Spill Index Table. If there is a non-zero capacity fraction, the value used for previous regulated spill is adjusted as follows:
This computes the spill that would have occurred if all the gates were available. If the previous regulated spill is less than the smallest possible Regulated Spill or greater than the largest possible Regulated Spill (according to the Regulated Spill Index Table), a RiverWare error is flagged and the run is aborted.
The Regulated Drift Index slot is then set for the current timestep. Finally, the Regulated Spill can be determined from the three dimensional interpolation of the Regulated Spill Index Table using the average Pool Elevation over the timestep and the Regulated Spill Index.
At the end of the algorithm, the computed regulated spill (assuming all the gates are available) is multiplied by the Capacity Fraction [t] to determine spill that will occur with the given capacity fraction. This Regulated Spill is then set on the slot.
* Regulated and Unregulated
The Regulated and Unregulated method models Spill through one controlled, Regulated Spill, and one uncontrolled spillway, Unregulated Spill. First, the Unregulated Spill can not be specified (input or via rules) or a RiverWare error will abort the run. The Unregulated Spill is a function of the average reservoir Pool Elevation and takes precedence (i.e. water goes through it first) over other types of outflow (i.e. Release or Turbine Release or Regulated Spill) in the reservoir. When this method is chosen the user category Unregulated Spill Type will appear.
Second, the user may specify (input or via rules) either
• No slots
• Spill or
• Regulated Spill
If one is specified and there is excess flow which cannot be met by the (Turbine) Release, an error will be flagged and the simulation halted.
Slots Specific to This Method
Regulated Spill
Type: Series Slot
Units: FLOW
Description: flow through the regulated spillway
Information:  
I/O: Optional; may be input by the user or determined by RiverWare. If regulated spill is set by the user and the value is greater than the required spill, an error is flagged and the simulation is halted.
Regulated Spill Capacity Fraction
Type: Series Slot
Units: Decimal
Description: The fraction of the Regulated Spill structure that is available.
Information: If not input or set by the user, it defaults to 1.0. The value must be between 0.0 and 1.0, inclusive. Example: if 1 of 8 gates are unavailable, the Regulated Spill Capacity Fraction would be input to 0.875.
I/O: Input, set by a rule, or output
Regulated Spill Drift Index
Type: Series Slot
Units: NONE
Description: gate setting index
Information: If the user has set the DRIFT flag on the Regulated Spill slot, the gate setting index from the previous timestep is maintained.
I/O: Optional; if not set by the user, the index is calculated from the Regulated Spill Index Table.
Regulated Spill Index Table
Type: Table Slot
Units: NOUNITS vs. LENGTH vs. FLOW
Description: Gate Index vs. Pool Elevation vs. Regulated Spill
Information:  
I/O: Optional; if the user sets the DRIFT flag on the Regulated Spill slot, this data table must be provided.
Data must be entered into the table in increasing blocks of the same Gate Index value for the 3-dimensional table interpolator to work correctly. For every block of same gate indexes in column 1, Pool Elevations should be listed in increasing order in column 2, and the corresponding Spills in column 3.
 
Gate Index
Pool Elevation
Spill
2
500
110
2
550
160
2
600
210
3
500
120
3
550
170
3
600
220
4
500
130
4
550
180
4
600
230
Regulated Spill Table
Type: Table Slot
Units: LENGTH vs. FLOW
Description: Pool Elevation vs. corresponding Max Regulated Spill values
Information:  
I/O: Required input
Unregulated Spill
Type: Series Slot
Units: FLOW
Description: spill corresponding to the average Pool Elevation over the timestep
Information:  
I/O: Output only
Unregulated Spill Capacity Fraction
Type: Series Slot
Units: Decimal
Description: The fraction of the Unregulated Spill structure that is available.
Information: If not input or set by the user, it defaults to 1.0. The value must be between 0.0 and 1.0, inclusive. Example: if 50 ft of a 1000 ft long crest is blocked, the Unregulated Spill Capacity Fraction would be input to 0.95.
I/O: Input, set by a rule, or output
Unregulated Spill Table
Type: Table Slot
Units: LENGTH vs. FLOW
Description: Pool Elevation vs. corresponding Unregulated Spill values
Information: Must contain a row which corresponds to a spill of zero for interpolation purposes.
I/O: Required input
Note:  Regulated Spill and Spill are both output slots if neither is input by the user. Only one of these slots, however, can be input for any timestep. When this is the case, the other slot will be an output slot.
The first step in the regulatedPlusUnregSpillCalc method is to obtain the minRegSpill. If the Closed Gate Overflow method is selected, the minRegSpill is computed; see “Closed Gate Overflow” for details. If not, the minRegSpill is 0.0. Next, the maximum regulated spill, maxRegSpill is computed by looking up the average pool elevation (i.e. the average of the current Pool Elevation estimate and the previous Pool Elevation) on the Regulated Spill Table. Then the Regulated Spill Capacity Fraction and minRegSpill are applied as follows:
The Unregulated Spill is then calculated; see “Unregulated” for a description of the steps. If the Unregulated Spill is input by the user, a RiverWare error is flagged and the run is aborted.
Release is then checked to see if it has been calculated. If Release is not known, it means that the method is being called for the first time for the particular timestep and the following steps are taken.
1. If both the Spill and Regulated Spill are input (remember setting a DRIFT flag is considered an input), a RiverWare error is flagged and the run is aborted.
2. If Spill is input and it is greater than the sum of the Unregulated Spill and the maxRegSpill, a RiverWare error is flagged which states that the requested Spill cannot be met. If the Spill is input and less than the Unregulated Spill plus minRegSpill, a RiverWare error is flagged. Otherwise, Regulated Spill is calculated as Spill minus Unregulated Spill.
3. If Regulated Spill is input by the user and the DRIFT flag is set, a function is called to perform the drift calculations. A description of the DRIFT function is given in the Regulated Spill section. If Regulated Spill is input and greater than the maxRegSpill or less than the minRegSpill, a RiverWare error is posted. Otherwise, Spill is set equal to the Regulated Spill plus Unregulated Spill.
4. If neither Regulated Spill nor Spill are input, Regulated Spill is set equal to the minRegSpill and Spill is set equal to Unregulated Spill plus minRegSpill.
After the Release has been calculated, the Regulated and Unregulated function may be called a second time if the sum of Release and Spill is less than the Outflow.
The following calculations are performed if the function is called for the second time.
1. If either Spill or Unregulated Spill are input, an error is posted because there are no free spill variables and RiverWare is unable to allocate the excess Outflow.
2. The Regulated Spill is calculated using the following equation:
3. If Regulated Spill is greater than the maxRegSpill, a RiverWare error is posted stating that the Outflow is greater than the spillway capacities and Release and the run is aborted.
4. Spill is calculated as Regulated Spill plus Unregulated Spill.
* Regulated and Bypass
The Regulated and Bypass method models spill through two regulated spillways called Regulated Spill and Bypass. The user may specify (input or via rules) one of the following:
• No slots
• Spill
• Spill and Bypass
• Spill and Regulated Spill
• Bypass
• Regulated Spill, or
• Bypass and Regulated Spill
If all three slots are specified, an error will be issued. Also, if Spill is specified and there is excess flow that cannot be met by (Turbine) Release, a RiverWare error will be flagged and the simulation halted.
The order in which water goes through the various outflow structures depends on what is known. Input/Rules values take precedence, followed by (Turbine) Release, followed by Regulated Spill, and finally by Bypass. For example, on a timestep where there is zero (Turbine) Release and no spill slots are specified, outflows will first go through Regulated Spill and any flow greater than max regulated spill will go through Bypass.
Slots Specific to This Method
Bypass
Type: Series Slot
Units: FLOW
Description: flow through the Bypass spillway
Information:  
I/O: Optional; may be input by the user or determined by RiverWare. If Bypass is set by the user and the value is greater than the required spill, a RiverWare error is flagged and the simulation is halted.
Bypass Capacity Fraction
Type: Series Slot
Units: Decimal
Description: The fraction of the Bypass structure that is available.
Information: If not input or set by the user, it defaults to 1.0. The value must be between 0.0 and 1.0, inclusive. Example: if 2 of 8 gates are unavailable, the Bypass Capacity Fraction would be input to 0.75.
I/O: Input, set by a rule, or output
Bypass Drift Index
Type: Series Slot
Units: NONE
Description: gate setting index for the Bypass spillway
Information: If the user has set the DRIFT flag on the Bypass slot, the gate setting index from the previous timestep is maintained.
I/O: Optional; if not set by the user, the index is calculated from the Bypass Index Table.
Bypass Index Table
Type: Table Slot
Units: NOUNITS vs. LENGTH vs. FLOW
Description: Gate Index vs. Pool Elevation vs. Bypass Spill
Information:  
I/O: Optional; if the user sets the DRIFT flag on the Bypass spill slot, this data table must be provided.
Bypass Table
Type: Table Slot
Units: LENGTH vs. FLOW
Description: Pool Elevation vs. corresponding maximum bypass spill values
Information:  
I/O: Required input
Regulated Spill
Type: Series Slot
Units: FLOW
Description: flow through the regulated spillway
Information:  
I/O: Optional; may be input by the user or determined by RiverWare.
Regulated Spill Capacity Fraction
Type: Series Slot
Units: Decimal
Description: The fraction of the Regulated Spill structure that is available.
Information: If not input or set by the user, it defaults to 1.0. The value must be between 0.0 and 1.0, inclusive. Example: if 1 of 8 gates are unavailable, the Regulated Spill Capacity Fraction would be input to 0.875.
I/O: Input, set by a rule, or output
Regulated Spill Drift Index
Type: Series Slot
Units: NONE
Description: gate setting index for the Regulated Spill
Information: If the user has set the DRIFT flag on the Regulated Spill slot, the gate setting index from the previous timestep is maintained.
I/O: Optional; if not set by the user, the index is calculated from the Regulated Spill Index Table.
Regulated Spill Index Table
Type: Table Slot
Units: NOUNITS vs. LENGTH vs. FLOW
Description: Gate Index vs. Pool Elevation vs. Regulated Spill
Information:  
I/O: Optional; if the user sets the DRIFT flag on the Regulated Spill slot, this data table must be provided.
Data must be entered into the table in increasing blocks of the same Gate Index value for the 3-dimensional table interpolator to work correctly. For every block of same gate indexes in column 1, Pool Elevations should be listed in increasing order in column 2, and the corresponding Spills in column 3.
 
Gate Index
Pool Elevation
Spill
2
500
110
2
550
160
2
600
210
3
500
120
3
550
170
3
600
220
4
500
130
4
550
180
4
600
230
Regulated Spill Table
Type: Table Slot
Units: LENGTH vs. FLOW
Description: Pool Elevation vs. corresponding maximum regulated spill values
Information:  
I/O: Required input
Note:  Spill, Regulated Spill, and Bypass can all be outputs if they are not specified by the user. The user may specify Spill, or either Regulated Spill or Bypass, or both Regulated Spill and Bypass. The slots which are not specified will be output slots.
The first step in the Regulated Spill method is to obtain the minRegSpill. If the Closed Gate Overflow method is selected, the minRegSpill is computed; see “Closed Gate Overflow” for details. If not, the minRegSpill is 0.0. Next, the maximum regulated spill, maxRegSpill is computed by looking up the average pool elevation (i.e. the average of the current Pool Elevation estimate and the previous Pool Elevation) on the Regulated Spill Table. Then the Regulated Spill Capacity Fraction and minRegSpill are applied as follows:
The next step is to obtain the maximum Bypass, maxBypass, by looking up the average pool elevation (i.e. the average of the current Pool Elevation estimate and the previous Pool Elevation) on the Bypass Table. Then the Bypass Capacity Fraction is applied as follows:
1. If Spill, Bypass, and Regulated Spill are all input/rules, a RiverWare Error is posted and the simulation run is aborted.
2. If Spill and Regulated Spill are input/rules by the user, the following steps are performed.
Note:  If the DRIFT flag is set on the Regulated Spill slot, Regulated Spill is considered an input.
– Drift calculations are performed if the DRIFT flag is set on the Regulated Spill slot. See Regulated Spill for a description of the drift calculations.
– If Regulated Spill is greater than either Spill or maxRegSpill a RiverWare error is flagged and the run is aborted.
– If Regulated Spill is less than minRegSpill, a RiverWare error is flagged and the run is aborted.
– Bypass is calculated as Spill minus Regulated Spill.
– If Bypass is greater than the maxBypass, an error is flagged.
3. If Spill and Bypass are input, the following steps are taken.
Note:  If the DRIFT flag is set on the Bypass slot, Bypass is considered an input.
– Drift calculations are performed if the DRIFT flag is set on the Bypass slot. The DRIFT calculations are performed in a similar manner to the drift calculations for Regulated Spill which are explained in the Regulated Spill method description.
– If Bypass is greater than either Spill or the maxBypass, a RiverWare error is flagged and the simulation is aborted.
– Regulated Spill is calculated as Spill minus Bypass.
– If Regulated Spill is either greater than the maximum regulated spill or less than the minimum regulated spill, an error is flagged and the run is aborted.
4. If Spill is input but neither Regulated Spill nor Bypass are input or flagged as DRIFT, the following steps are taken.
– Regulated Spill is set as the lesser value of either the Spill or the maxRegspill. The Regulated Spill also cannot be less than the minRegSpill.
– If Regulated Spill is less than Spill, Bypass is calculated as Spill minus Regulated Spill.
– If Bypass is greater than the maxBypass, a RiverWare error is flagged and the run is aborted.
– If Regulated Spill is equal to Spill, Bypass is set equal zero.
5. If Spill is not input, and both Bypass and Regulated Spill are input, the following steps are taken.
– The drift calculations are performed for both Regulated Spill and Bypass if the DRIFT flags have been set. A description of the DRIFT calculations is contained in the Regulated Spill method.
– Regulated Spill and Bypass are checked against the maxRegSpill and maxBypass, respectively. If either Regulated Spill is greater, a RiverWare error is flagged and the run is aborted.
– Spill is calculated as Regulated Spill plus Bypass.
6. If the DRIFT flag is set on the Regulated Spill, the drift calculations are performed (as described in the Regulated Spill method) to calculate Regulated Spill. The calculated Regulated Spill value is then checked against spillway capacities. If only Regulated Spill is input, the value is checked against the spillway capacity. Spill is set equal to Regulated Spill and Bypass is set to zero if the Regulated Spill is less than or equal to the maxRegSpill. If the Regulated Spill is greater than the maxRegSpill or less than the minRegSpill, a RiverWare error is posted and the simulation run is aborted.
7. If the DRIFT flag is set on the Bypass, the drift calculations are performed (as described in the Regulated Spill method) to calculate Bypass. The calculated Bypass value is then checked against spillway capacities. If only Bypass is input, the input value is checked against the spillway capacity. Spill is calculated as Bypass plus Regulated Spill. Regulated Spill is set to the minimum regulated spill, if the Bypass is less than the maximum bypass. If the Bypass is greater than the maxBypass, a RiverWare error is posted and the simulation run is aborted.
8. If no slots are input, Spill is set equal minRegSpill. Bypass is set to zero and Regulated Spill is set to minRegSpill.
After Release has been calculated, the Regulated and Bypass function may be called a second time if the sum of the Release and Spill is less than the Outflow.
The following calculations are performed if the function is called for the second time.
1. If either Spill is input, or both Regulated Spill and Bypass are input, a RiverWare error is flagged and the simulation run is aborted because there are no free spill variables.
2. If only Regulated Spill is input or flagged as DRIFT, Bypass is recalculated using the following formula:
Bypass is then checked against its spillway capacity and a RiverWare error is flagged and the simulation is aborted the spillway capacity is exceeded. Spill is calculated as Bypass plus Regulated Spill if the Bypass is less than or equal to maximum allowable bypass.
3. If only Bypass is input or flagged as DRIFT, Regulated Spill is recalculated using the following formula:
The Regulated Spill is then checked against its spillway capacity and minRegSpill. A RiverWare error is posted and the simulation run is aborted if the spillway capacity is exceeded or is less than minimum. Spill is calculated as the sum of Bypass and Regulated Spill.
4. If neither Bypass nor Regulated Spill is input, the following steps are performed.
– A local variable, excess, is calculated as Outflow minus Turbine Release minus minRegSpill.
– Regulated Spill is set equal to the lesser value of excess or maxRegSpill but must be greater than minRegSpill.
– If Regulated Spill is less than the excess, Bypass is calculated as excess minus Regulated Spill.
– Bypass is checked against its spillway capacity. If Bypass is greater than the maxBypass, a RiverWare error is posted and the simulation run is aborted.
– Spill is calculated as the Bypass plus the Regulated Spill.
– If Regulated Spill is equal to the Excess, Bypass is set equal to zero and Spill is set equal to Regulated Spill.
* Regulated, Bypass and Unregulated
This method models spill through two controlled spillways called Bypass and Regulated Spill and one uncontrolled spillway called Unregulated Spill. The user may not specify (input or via rules) the Unregulated Spill. This value is always output and is a function of the average reservoir Pool Elevation. The user may specify (input or rules) one of the following:
• No slots
• Spill
• Spill and Bypass
• Spill and Regulated Spill
• Bypass
• Regulated Spill, or
• Bypass and Regulated Spill
If Spill, Regulated Spill, and Bypass are specified, an error will be issued. Also, if Spill is specified and there is excess flow that cannot be met by (Turbine) Release, a RiverWare error will be flagged and the simulation halted.
The order in which water goes through the various outflow structures depends on what is known. Unregulated Spill takes precedence, followed by input/rules values, followed by (Turbine) Release, followed by Regulated Spill, and finally by Bypass. For example, on a timestep where there is zero (Turbine) Release and no spill slots are specified, outflows will first go through Unregulated Spill (computed based on pool elevation), then Regulated Spill up to capacity and any excess flows will go through Bypass.
Slots Specific to This Method
Bypass
Type: Series Slot
Units: FLOW
Description: flow through the Bypass spillway
Information:  
I/O: Optional; may be input by the user or determined by RiverWare. If Bypass is set by the user and the value is greater than the required spill, a RiverWare error is flagged and the simulation is halted.
Bypass Capacity Fraction
Type: Series Slot
Units: Decimal
Description: The fraction of the Bypass structure that is available.
Information: If not input or set by the user, it defaults to 1.0. The value must be between 0.0 and 1.0, inclusive. Example: if 2 of 8 gates are unavailable, the Bypass Capacity Fraction would be input to 0.75.
I/O: Input, set by a rule, or output
Bypass Drift Index
Type: Series Slot
Units: NONE
Description: gate setting index for the Bypass spillway
Information: If the user has set the DRIFT flag on the Bypass slot, the gate setting index from the previous timestep is maintained.
I/O: Optional; if not set by the user, the index is calculated from the Bypass Index Table.
Bypass Index Table
Type: Table Slot
Units: NOUNITS vs. LENGTH vs. FLOW
Description: Gate Index vs. Pool Elevation vs. Bypass Spill
Information:  
I/O: Optional; if the user sets the DRIFT flag on the Bypass spill slot, this data table must be provided.
Bypass Table
Type: Table Slot
Units: LENGTH vs. FLOW
Description: Pool Elevation vs. corresponding maximum bypass spill values
Information:  
I/O: Required input
Regulated Spill
Type: Series Slot
Units: FLOW
Description: flow through the regulated spillway
Information:  
I/O: Optional; may be input by the user or determined by RiverWare.
Regulated Spill Capacity Fraction
Type: Series Slot
Units: Decimal
Description: The fraction of the Regulated Spill structure that is available.
Information: If not input or set by the user, it defaults to 1.0. The value must be between 0.0 and 1.0, inclusive. Example: if 1 of 8 gates are unavailable, the Regulated Spill Capacity Fraction would be input to 0.875.
I/O: Input, set by a rule, or output
Regulated Spill Drift Index
Type: Series Slot
Units: NONE
Description: gate setting index for the Regulated Spill
Information: If the user has set the DRIFT flag on the Regulated Spill slot, the gate setting index from the previous timestep is maintained.
I/O: Optional; if this slot is not set by the user, the gate index is calculated from the Regulated Spill Index Table.
Regulated Spill Index Table
Type: Table Slot
Units: NOUNITS vs. LENGTH vs. FLOW
Description: Gate Index vs. Pool Elevation vs. Regulated Spill
Information:  
I/O: Optional; if the user sets the DRIFT flag on the Regulated Spill slot, this data table must be provided.
Data must be entered into the table in increasing blocks of the same Gate Index value for the 3-dimensional table interpolator to work correctly. For every block of same gate indexes in column 1, Pool Elevations should be listed in increasing order in column 2, and the corresponding Spills in column 3.
 
Gate Index
Pool Elevation
Spill
2
500
110
2
550
160
2
600
210
3
500
120
3
550
170
3
600
220
4
500
130
4
550
180
4
600
230
Regulated Spill Table
Type: Table Slot
Units: LENGTH vs. FLOW
Description: Pool Elevation vs. corresponding maximum regulated spill values
Information:  
I/O: Required input
Unregulated Spill
Type: Series Slot
Units: FLOW
Description: spill corresponding to the average Pool Elevation over the timestep
Information:  
I/O: Output only
Unregulated Spill Capacity Fraction
Type: Series Slot
Units: Decimal
Description: The fraction of the Unregulated Spill structure that is available.
Information: If not input or set by the user, it defaults to 1.0. The value must be between 0.0 and 1.0, inclusive. Example: if 50 ft of a 1000 ft long crest is blocked, the Unregulated Spill Capacity Fraction would be input to 0.95.
I/O: Input, set by a rule, or output
Unregulated Spill Table
Type: Table Slot
Units: LENGTH vs. FLOW
Description: Pool Elevation vs. corresponding unregulated spill values
Information:  
I/O: Required input
Note:  Spill, Regulated Spill, and Bypass may be output slots if they are not specified as input by the user. The user may specify either Spill or Regulated Spill or Bypass, or both Unregulated Spill and Bypass as input. The slots which are not set as input will be output slots.
The first step in the Regulated Spill method is to obtain the minRegSpill. If the Closed Gate Overflow method is selected, the minRegSpill is computed; see “Closed Gate Overflow” for details. If not, the minRegSpill is 0.0. Next, the maximum regulated spill, maxRegSpill is computed by looking up the average pool elevation (i.e. the average of the current Pool Elevation estimate and the previous Pool Elevation) on the Regulated Spill Table. Then the Regulated Spill Capacity Fraction and minRegSpill are applied as follows:
The next step is to obtain the maximum Bypass, maxBypass by looking up the average pool elevation (i.e. the average of the current Pool Elevation estimate and the previous Pool Elevation) on the Bypass Table. Then the Bypass Capacity Fraction is applied as follows:
The Unregulated Spill is then calculated; see “Unregulated” for a description of the steps. If the Unregulated Spill is input by the user, a RiverWare error is flagged and the run is aborted.
If Spill, Bypass, and Regulated Spill are input, Spill is overdetermined and a RiverWare error is flagged and the simulation run is aborted.
If Release has not been calculated, the method is executing for the first time in the current timestep and the following steps are taken.
1. If Spill is input by the user and Unregulated Spill is greater than the Spill, a RiverWare error is flagged and the simulation run is aborted.
2. If Spill and Regulated Spill are input the following steps are taken.
Note:  If the DRIFT flag is set on the Regulated Spill slot, Regulated Spill is considered an input.
– Drift calculations are performed if the DRIFT flag is set on the Regulated Spill slot. See Regulated Spill for a description of the drift calculations.
– If Regulated Spill is greater than either Spill or maxRegSpill, a RiverWare error is flagged and the run is aborted.
– If Regulated Spill is less than minRegSpill, a RiverWare error is flagged and the run is aborted.
– Bypass is calculated as Spill minus Regulated Spill minus Unregulated Spill.
– If Bypass is either greater than the maxBypass or less than zero, an error is flagged.
3. If Spill and Bypass are input, the following steps are taken.
Note:  If the DRIFT flag is set on the Bypass slot, Bypass is considered an input.
– Drift calculations are performed if the DRIFT flag is set on the Bypass slot. The DRIFT calculations are performed in a similar manner to the drift calculations for Regulated Spill, which are explained in the Regulated Spill method description.
– If Bypass is greater than either Spill or the maxBypass, a RiverWare error is flagged and the run is aborted.
– Regulated Spill is calculated as Spill minus Bypass minus Unregulated Spill.
– If Regulated Spill is either greater than the maxRegSpill or less than the minRegSpill, an error is flagged and the run is aborted.
4. If Spill is input by the user and neither Bypass nor Regulated Spill are input, the following steps are taken.
– Regulated Spill is set as the lesser value of either the Spill minus Unregulated Spill or the maxRegSpill. The Regulated Spill also cannot be less than the minRegSpill.
– If Regulated Spill is less than Spill minus Unregulated Spill, Bypass is set equal to Spill minus Regulated Spill minus Unregulated Spill.
– If Bypass is greater than the maxBypass, a RiverWare error is flagged and the run is aborted.
– If Regulated Spill is equal to Spill minus Unregulated Spill, Bypass is set equal to zero.
5. If Spill is not input, but both Bypass and Regulated Spill are input, the following steps are taken.
– The drift calculations are performed for both Regulated Spill and Bypass if the DRIFT flags have been set. A description of the DRIFT calculations is contained in the Regulated Spill method.
– Regulated Spill and Bypass are checked against the maxRegSpill and maxBypass, respectively. If either Regulated Spill is greater, a RiverWare error is flagged and the run is aborted. If Regulated Spill is less than the minRegSpill, an error is issued.
– Spill is calculated as the sum of Regulated Spill, Bypass, and Unregulated Spill.
6. If the DRIFT flag is set on the Regulated Spill, the drift calculations are performed (as described in the Regulated Spill method) to calculate Regulated Spill. The calculated Regulated Spill Value is then checked against spillway capacities. If only Regulated Spill is input, the value is checked against the spillway capacity. Spill is calculated as Regulated Spill plus Unregulated Spill and Bypass is set to zero, if the Regulated Spill is less than the maxRegSpill. If the Regulated Spill is greater than the maxRegSpill or less than the minRegSpill, a RiverWare error is posted and the simulation run is aborted.
7. If the DRIFT flag is set on the Bypass, the drift calculations are performed (as discussed in the Regulated Spill method) to calculated the Bypass. The calculated Bypass value is then checked against spillway capacities. If only Bypass is input, the input value is checked against the spillway capacity. Spill is calculated as Bypass plus Unregulated Spill and Regulated Spill is set to the minRegSpill, if the Bypass is less than the maxBypass. If the Bypass is greater than the maxBypass, a RiverWare error is posted and the simulation run is aborted.
8. If no slots are input, Spill is set equal to Unregulated Spill plus minRegSpill. Bypass is set to zero and Regulated Spill is set to minRegSpill.
After Release has been calculated, the Regulated, Bypass and Unregulated function may be called a second time if the sum of the Release and Spill is less than the Outflow.
The following calculations are performed if the function is called for the second time.
1. If either Spill is input or both Regulated Spill and Bypass are input, a RiverWare error is flagged and the simulation run is aborted because there are no free spill variables.
2. If only Regulated Spill is input or flagged as DRIFT, Bypass is recalculated using the following formula:
The Bypass is then checked against its spillway capacity. A RiverWare error is posted and the simulation run is aborted if the spillway capacity is exceeded. Spill is calculated as the sum of Bypass, Unregulated Spill, and Regulated Spill if the Bypass is less than or equal to the maxBypass.
3. If only Bypass is input, Regulated Spill is recalculating the following formula:
The Regulated Spill is then checked against its spillway capacity and minRegSpill. A RiverWare error is posted and the simulation run is aborted if the spillway capacity is exceeded or is less than minimum. Spill is calculated as the sum of Bypass, Regulated Spill, and Unregulated Spill if the Regulated Spill is less than or equal to the maximum allowable regulated spill.
4. If neither Regulated Spill nor Bypass are input, the following steps are performed.
– A local variable, excess, is calculated as Outflow minus Unregulated Spill minus Turbine Release minus minimum regulated spill.
– Regulated Spill is set equal to the lesser value of excess or maxRegSpill but must be greater than minRegSpill.
– If Regulated Spill is less than excess, Bypass is calculated as excess minus Regulated Spill.
– Bypass is checked against its spillway capacity. If Bypass is greater than the maxBypass, a RiverWare error is posted and the simulation run is aborted.
– Spill is set equal to the sum of Bypass, Regulated Spill, and Unregulated Spill.
– If Regulated Spill is equal to Excess, Bypass is set equal to zero and Spill is set equal to the sum of Regulated Spill and Unregulated Spill.
* Bypass, Regulated and Unregulated
Note:  This user method is the similar to the Regulated, Bypass and Unregulated method but switches the order of the Bypass and Regulated Spill outlet works. This method is preferable in institutional cases where the term “Bypass” is favored over the term “Regulated Spill”. Other than the order reversal, the functionality is similar to the Regulated, Bypass and Unregulated method.
This method models spill through two controlled spillways called Bypass and Regulated Spill and one uncontrolled spillway called Unregulated Spill. The user may not specify (input or via rules) the Unregulated Spill. This value is always output and is a function of the average reservoir Pool Elevation. The user may specify (input or rules) one of the following:
• No slots
• Spill
• Spill and Bypass
• Spill and Regulated Spill
• Bypass
• Regulated Spill, or
• Bypass and Regulated Spill
If Spill, Regulated Spill, and Bypass are specified, an error will be issued. Also, if Spill is specified and there is excess flow that cannot be met by (Turbine) Release, a RiverWare error will be flagged and the simulation halted.
The order in which water will go through the various outflow structures depends on what is known. Unregulated Spill takes precedence, followed by input/rules values, followed by (Turbine) Release, followed by Bypass, and finally by Regulated Spill. For example, on a timestep where there is zero (Turbine) Release and no spill slots are specified, outflows will first go through Unregulated Spill (required based on pool elevation), then Bypass up to capacity and any excess flows will go through Regulated Spill.
Please see the Regulated, Bypass and Unregulated method for a description of the slots particular to this method and the algorithm of this method. The algorithm for this method is only different in that Bypass takes precedence over Regulated Spill.
Unregulated Spill Type
This category is only visible when a method using Unregulated Spill is chosen. The methods in this category do the actual computations for computing the unregulated spill.
* Bare Crest Only
The Bare Crest Only method is the default method in the Unregulated Spill Type Category. The method assumes an unobstructed spillway where the flow over the spillway is a function of the Unregulated Spill Table. There are no slots specifically associated with this method.
The steps for computing Bare Crest Unregulated Spill are as Follows.
1. A temporary variable called “initHW” is created to represent the Pool Elevation at the beginning of the timestep. Likewise, “endHW” is created to represent the Pool Elevation at the end of the timestep (If the Pool Elevation at the end of the timestep is not known, endHW is set equal to the Pool Elevation at the beginning of the timestep.)
2. The Unregulated Spillway Crest is found on the Unregulated Spill Table by searching for the Pool Elevation that corresponds to a Spill of zero
3. If both initHW and endHW are less than or equal to the Unregulated Spillway Crest, Unregulated Spill is set equal to zero.
4. If both initHW and endHW are greater than or equal the Unregulated Spillway Crest, the average Pool Elevation is used to determine the Unregulated Spill from the Unregulated Spill Table.
5. If either initHW or endHW is greater than the Unregulated Spillway Crest and the other is lower than the crest, the following evaluations and computations are performed:
That is, spill fraction corresponds to the fraction of the timestep during which spill occurs.
A temporary variable called “temp spill” is obtained from the linear interpolation of the Unregulated Spill Table using avgHW. Unregulated Spill is then calculated as follows:
The Unregulated Spill is then limited to be less than or equal to the maxUnregulatedSpill if one has been calculated. See below.
Computing the Maximum Possible Unregulated Spill
If an unregulated spill method is called from the solveMB_givenInflowRelease dispatch method, getMinSpillGivenInflowRelease or solveTurbineRelGivenEnergyInflow RPL predefined functions, there is an upper limit on the unregulated spill. The upper limit prevents the unregulated spill from dropping the reservoir below the crest.
Note:  Use the Bare Crest, Table Only method described in “Bare Crest, Table Only”if you do not want to use this maximum. The maximum may not apply for reservoirs with little storage compared to the inflows and outflows.
The following algorithm is performed at the start of the following methods to compute this maximum unregulated spill (maxUnregulatedSpill):
• solveMB_givenInflowRelease dispatch method (Storage and Level Power reservoirs)
• solveMB_givenInflowOutflow dispatch method (Storage and Level Power reservoirs)
• getMinSpillGivenInflowRelease RPL predefined function
• solveTurbineRelGivenEnergyInflow RPL predefined function
1. Given previous Storage and Pool Elevation (initPE), all known inflows (Inflow, Hydrologic Inflow, Precipitation, Return Flow, etc) and known outflows (Release, Regulated Spill, Bypass, Evaporation, Diversion, etc) are used to compute the storage and pool elevation (endPE) that would occur with no additional unregulated spill.
2. If both initPE and endPE are less than or equal to the Unregulated Spillway Crest, maxUnregulatedSpill is set to zero and the computation exits. There is no way there could be unregulated spill. See Figure 29.2.
Figure 29.2  Diagram showing both initPE and endPE below the crest
3. If both initPE and endPE are greater than or equal to the Unregulated Spillway Crest, the maxUnregulatedSpill is computed as the flow that would draw the reservoir down to exactly reach the crest at the end of the timestep. This computation solves the reservoir mass balance and includes all source and sink terms. All water above the crest could be spilled. See Figure 29.3.
Figure 29.3  Diagram showing both initPE and endPE above the crest
4. If either initPE or endPE is greater than the Unregulated Spillway Crest and the other is lower than the crest (because of existing Diversions, Evap, etc), the following evaluations and computations are performed (see Figure 29.4.)
That is, spill fraction corresponds to the fraction of the timestep during which spill occurs.
Figure 29.4  Diagram showing the PE crossing the spillway crest during the timestep
5. The storage at the crest, crestStorage, is computed from the Elevation Volume Table.
6. The storage, maxStorage, that corresponds to the maxPE is found on the Elevation Volume Table.
7. The maxUnregulatedSpill (limited to be greater than or equal to zero) is then computed as follows:
The maxUnregulatedSpill is applied as a final limit on the Unregulated Spill. Remember, the Unregulated Spill is computed as described in the start of this method using the Unregulated Spill Table and a similar spill fraction approach; it may already be less than the maxUnregulatedSpill.
* Bare Crest, Table Only
The Bare Crest, Table Only method behaves like the Bare Crest Only method, but does not perform the calculations described in Computing the Maximum Possible Unregulated Spill. The unregulated spill is set to the value computed based on the bare crest algorithm and table values, without the volumetric check for volume above the crest. Use this method for reservoirs with little storage compared to the inflows and outflows.
The method assumes an unobstructed spillway where the flow over the spillway is a function of the Unregulated Spill Table. There are no slots specifically associated with this method.
The steps for computing Unregulated Spill are as Follows.
1. A temporary variable called “initHW” is created to represent the Pool Elevation at the beginning of the timestep. Likewise, “endHW” is created to represent the Pool Elevation at the end of the timestep (If the Pool Elevation at the end of the timestep is not known, endHW is set equal to the Pool Elevation at the beginning of the timestep.)
2. The Unregulated Spillway Crest is found on the Unregulated Spill Table by searching for the Pool Elevation that corresponds to a Spill of zero
3. If both initHW and endHW are less than or equal to the Unregulated Spillway Crest, Unregulated Spill is set equal to zero.
4. If both initHW and endHW are greater than or equal the Unregulated Spillway Crest, the average Pool Elevation is used to determine the Unregulated Spill from the Unregulated Spill Table.
5. If either initHW or endHW is greater than the Unregulated Spillway Crest and the other is lower than the crest, the following evaluations and computations are performed:
That is, spill fraction corresponds to the fraction of the timestep during which spill occurs.
A temporary variable called “temp spill” is obtained from the linear interpolation of the Unregulated Spill Table using avgHW. Unregulated Spill is then calculated as follows:
* Two Unregulated Flows
When the Two Unregulated Flows method is selected, flow over the spillway is a function of the Unreg Flow 2 Spill Table. If the pool elevation meets or exceeds the Unreg Flow 2 Failure Elevation, flow becomes a function of the Unregulated Spill Table.
Note:  This method originally was called Flashboards but was renamed to be more general. (Flashboards are wooden boards installed in the unregulated spillway so that the reservoir may store more water than what the spillways themselves would allow.)
Unreg Flow 2 Avail and Failure Time
Type: Agg Series Slot
Units: fraction
Description: Availability of Unreg Flow 2 Spill Table, fraction of timestep when Unreg Flow 2 Spill Table is in use.
Information:  
I/O: Optional: Availability may be input by user or set by a rule. Failure time is output only
Unreg Flow 2 Failure Elevation
Type: Table Slot
Units: length
Description: Pool Elevation at which Unreg Flow 2 Spill Table is no longer used.
Information:  
I/O: Required Input
Unreg Flow 2 Spill Table
Type: Table Slot
Units: Length vs. Flow
Description: Pool Elevation vs. corresponding unregulated flow 2 spill values.
Information: Must contain a row which corresponds to a spill of zero for interpolation purposes.
I/O: Required Input
Method Details
To determine the spill tables to use during a timestep based on availability of Unreg Flow 2, the following possibilities are checked.
1. Availability is input or set by a rule: no change from Unreg Flow 2 to Unregulated Spill over timestep, calculate spill based on availability.
2. Availability is 0: no change from Unreg Flow 2 to Unregulated Spill, calculate spill based on Unregulated Spill Table.
3. Availability is greater than 0, check if failure from Unreg Flow 2 to Unregulated Spill occurs during the timestep.
During the third case, the spill over the timestep is calculated using the respective table and multiplied by the availability to find the total spill over the timestep. The total spill is used to predict the pool elevation at the end of the timestep. The calculated pool elevation is compared to the Unreg Flow 2 Failure Elevation. If a failure from Unreg Flow 2 to Unregulated Spill is found to occur any time during the timestep, the failure time is recorded and the ending pool elevation is re-calculated to account for the change in spill due to the change from Unreg Flow 2 to Unregulated Spill during the timestep.
Note:  If a failure from Unreg Flow 2 to Unregulated Spill occurs during a dispatch, the first time of this failure is used for the remainder of the dispatch.
The time of failure during the timestep is used to determine what portion of the timestep needs interpolation from each of the two spill tables. The unregulated spill is the sum of the two unregulated spills.
* Three Unregulated Flows
When the Three Unregulated Flows is selected, flow over the spillway is a function of the Unreg Flow 3 Spill Table. If the pool elevation meets or exceeds the Unreg Flow 3 Failure Elevation, flow becomes a function of the Unreg Flow 2 Spill Table. If the pool elevation meets or exceeds the Unreg Flow 2 Failure Elevation, flow becomes a function of the Unreg Flow Spill Table. To summarize, Unreg Flow 3 fails first, then Unreg Flow 2 fails next as the pool rises. Therefore, the Unreg Flow 2 Failure Elevation should be higher than the Unreg Flow 3 Failure Elevation.
Note:  This method was originally called the Flashboards and Superboards method but was renamed to be more general. Flashboards and superboards are wooden boards installed in the unregulated spillway so that the reservoir may store more water than what the spillways themselves would allow. The superboards can only be installed if the flashboards are in place.
Unreg Flow Avail and Failure Time
Type: Agg Series Slot
Units: fraction
Description: Availability and failure time of Unreg flow 2 and 3 Spill tables.
Information:  
I/O: Optional: Availability may be input by user or set by a rule. Failure time is output only
Unreg Flow 3 Failure Elevation
Type: Table Slot
Units: length
Description: Pool Elevation at which Unreg Flow 3 Spill Table is no longer used.
Information: The value in this slot should be lower than the value in the Unreg Flow 2 Failure Elevation.
I/O: Required Input
Unreg Flow 3 Spill Table
Type: Table Slot
Units: Length vs. Flow
Description: Pool Elevation vs. corresponding unregulated flow 3 spill values.
Information: Must contain a row which corresponds to a spill of zero for interpolation purposes.
I/O: Required Input
Unreg Flow 2 Failure Elevation
Type: Table Slot
Units: length
Description: Pool Elevation at which Unreg Flow 2 Spill Table is no longer used.
Information: The value in this slot should be higher than the value in the Unreg Flow 2 Failure Elevation.
I/O: Required Input
Unreg Flow 2 Spill Table
Type: Table Slot
Units: Length vs. Flow
Description: Pool Elevation vs. corresponding unregulated flow 2 spill values.
Information: Must contain a row which corresponds to a spill of zero for interpolation purposes.
I/O: Required Input
Method Details
To determine the spill tables to use during a timestep based on availability of Unreg Spill 2 and Unreg Spill 3, the following possibilities are checked.
1. Both availabilities are input or set by a rule: no change in unregulated spill type over timestep, calculate spill based on availability.
2. One availability is input or set by a rule: Error, both or none must be input.
3. Availabilities are 0. No change in unregulated spill type over timestep. Calculate spill based on Unregulated Spill Table.
4. At least one availability is greater than 0, check for failure in unregulated spill type.
During the fourth case the spill over the timestep is calculated using the respective table and multiplied by the availability to find the total spill over the timestep. The total spill is used to project the pool elevation at the end of the timestep. The calculated pool elevation is compared to the failure elevations of Unreg Flow 2 or Unreg Flow 3. If failure in unregulated spill type is found to occur any time during the timestep, this failure time is recorded and the ending pool elevation is recalculated to account for the change in spill due to the change in unregulated spill type during the timestep.
Note:  If a change in unregulated spill type occurs during a dispatch, the first time of this change is used for the remainder of the dispatch.
The time at which change in unregulated spill type occurred during the timestep is used to determine what portion of the timestep needs interpolation from each of the three spill tables. The unregulated spill is the sum of the three unregulated spills.
Regulated Spill Overflow
The category, Regulated Spill Overflow, is added if one of the following regulated spill methods is selected:
• Regulated Spill
• Regulated and Unregulated
• Regulated and Bypass
• Regulated, Bypass and Unregulated
• Bypass, Regulated and Unregulated
* None
This is the default, no-action method.
* Closed Gate Overflow
This method models the uncontrolled flow over a closed regulated spill gate. This functionality uses the Regulated Spill Capacity Fraction to compute the default amount of spillway that is overtopped.
This functionality only applies to Regulated Spill, not Bypass.
The following slots will be added
Closed Gate Overflow
Type: Series Slot
Units: Flow
Description: Uncontrolled portion of the Regulated spill that overtops the gates.
Information: This value is computed by the regulated spill method as the value found on the Closed Gate Overflow Table multiplied by the Closed Gate Overflow Capacity Fraction
I/O: Output only
Closed Gate Overflow Table
Type: Table Slot
Units: Length vs Flow
Description: Pool Elevation vs unregulated flow.
Information: This table is used to specify the rating curve for uncontrolled flow over the closed Regulated Spill gates. The values should be input to the table as though every Regulated Spill gate is closed. The tables would start with zero flow at or just below the top of the closed gates.
I/O: Input Only
Closed Gate Overflow Capacity Fraction
Type: Series Slot
Units: Fraction
Description: The fraction of the closed gate overflow that is available.
Information: The value must be between 0.0 and 1.0, inclusive. If not input or set by a rule, it defaults to (1 - Regulated Spill Capacity Fraction). Example: if 1 of 8 gates are unavailable, the Regulated Spill Capacity Fraction would be set to 0.875 and the Closed Gate Overflow Capacity Fraction would default to 0.125.
I/O: Input, set by a rule, or output
Method Details
If not input or set by a rule, Closed Gate Overflow Capacity Fraction defaults to (1 ‑ Regulated Spill Capacity Fraction). This default indicates that the overflow only happens over gates that are closed. Otherwise, the user can specify the Closed Gate Overflow Capacity Fraction slot to say how much of the overflow structure is available.
When the reservoir is below the top of the gates, there is no Closed Gate Overflow. But once the reservoir is above the top of one or more closed gates, there is Closed Gate Overflow. The computation of this overflow is similar to the unregulated spill computation.
1. A temporary variable called “initHW” is created to represent the Pool Elevation at the beginning of the timestep. Likewise, “endHW” is created to represent the Pool Elevation at the end of the timestep (If the Pool Elevation at the end of the timestep is not known, endHW is set equal to the Pool Elevation at the beginning of the timestep.)
2. The “Closed Gate Overflow Crest” is found from the Closed Gate Overflow Table. It is the Pool Elevation that corresponds to an overflow of zero.
3. If both initHW and endHW are less than or equal to the Closed Gate Overflow Crest, Closed Gate Overflow is set equal to zero.
4. If both initHW and endHW are greater than the Closed Gate Overflow Crest, the average Pool Elevation is used to determine the Closed Gate Overflow from the Closed Gate Overflow Table.
5. If either initHW or endHW is greater than the Closed Gate Overflow Crest and the other is lower than the crest, the following evaluations and computations are performed:
where:
– maxHW = the maximum value of Pool Elevation over the timestep.
– minHW = the minimum value of Pool Elevation over the timestep.
– avgHW = the average Pool Elevation causing overflow over the timestep.
– overflow fraction = corresponds to the fraction of the timestep during which overflow occurs.
A temporary variable called “temp overflow” is obtained from the linear interpolation of the Closed Gate Overflow Table using avgHW. Closed Gate Overflow is then calculated as follows:
When allocating spills to various structures, the Closed Gate Overflow must occur at the same time as unregulated spills (i.e. before regulated or bypass). Then any remaining outflow can go through the regulated and or bypass spill structures. Therefore, the minimum regulated spill is computed as follows:
Also, the Closed Gate Overflow is set equal to the Min Regulated Spill.
The functionality assumes that water is either flowing through the gate or over topping it, but not both. The method assumes that the Gate Overflow Table is fixed, that is the elevations in the table do not change. Thus if you had a gate stuck with 1/2 ft open at the bottom and there was still water going over the top, the table (which assumes the gate is closed) would be an incorrect rating.
Input Outflow Adjustment
This method category is only available if a method is selected in the Spill Calculation category. Its purpose is to adjust input Outflow values if they violate a physical constraint.
* None
This is the default method. It performs no calculations and there are no slots associated with it. The Outflow values will not be adjusted if this method is selected.
* Reduce Input Outflow
This method is used to reduce the input Outflow value whenever it exceeds the maximum reservoir outflow (due to outlet works capacity).
Slots Specific to This Method
Requested Outflow
Type: Series Slot
Units: FLOW
Description: The Outflow value before being adjusted
Information: This slot is available so that the user can see when an Outflow value is adjusted. The value in this slot is the outflow value before being adjusted. A value exists in this slot only if the Outflow value is adjusted.
I/O: Output only
If the Outflow slot value is greater than the maximum reservoir outflow, this method saves the Outflow value in the Requested Outflow slot. Then, the Maximum Capacity flag is set on the Outflow slot. The reservoir is then forced to re-dispatch with the Outflow set to Max Capacity (instead of the original, input value). When the reservoir solves the second time, it computes the maximum reservoir outflow and sets this value on the Outflow slot. The Maximum Capacity flag remains on the Outflow slot for the timestep in question (and will be saved with the model file).
* Allow Excess Specified Outflows
This method allows input Outflows that exceed the maximum reservoir outflow (due to outlet capacity). Because the excess is above the maximum possible for the (Turbine) Release and Spill slots, it will not be classified as either. Instead, the excess is stored on a separate series slot for reporting or tracking.
Slots Specific to This Method
Outflow Exceeding Max
Type: Series Slot
Units: Flow
Description: The portion of the input Outflow that exceeds the sum of the Spill and (Turbine) Release.
Information: This slot tracks the amount that does not fit through the Release and Spill structures.
I/O: Output Only
Method Details
Toward the end of each dispatch method, if Outflow is greater than the sum of Spill and (Turbine) Release, the Spill method is executed again to redistribute the Outflows to the appropriate spill structures. Within the Spill method, if there is still no room for the specified Outflow, the selected method in the Input Outflow Adjustment category is executed. When the Allow Excess Specified Outflows method is selected, it does the following:
1. If the Outflow does not have an input flag (I or Z), then the method exits and issues an error that there are excess outflows.
2. If the Outflow is input (I or Z flag), the method computes the difference between the specified Outflow and the maximum Outflow (i.e. Turbine Release + Spill). This excess outflow is then set on the Outflow Exceeding Max slot.
3. The method then exits successfully and returns to the Spill method and then the dispatch method. The dispatch method sets the spill and mass balance slots.
Evaporation and Precipitation
The Evaporation and Precipitation category methods are used to calculate the volume of Evaporation from and Precipitation to the surface of a reservoir over the timestep. Precipitation and Evaporation are used in the mass balance equations which are solved in the dispatch methods.
Some of the methods in this category only calculate evaporation.
* None
The None method is the default method for the Evaporation and Precipitation category. It should be chosen if the user does not want to include Evaporation in the mass balance equation of the Reservoir. There are no slots specifically associated with this method. No calculations are performed by this method.
* Daily Evaporation
The Daily Evaporation method is used to calculate the daily evaporation volume and the flow rate of the precipitation. The daily evaporation volume is a function of the Evaporation Rate, average Surface Area, and Pan Coefficient.
Slots Specific to This Method
Elevation Area Table
Type: Table Slot
Units: LENGTH vs. AREA
Description: Pool Elevation vs. Surface Area
Information:  
I/O: Required input
Evaporation
Type: SeriesSlot
Units: VOLUME
Description: volume of water lost to evaporation during one timestep
Information:  
I/O: Output only
Evaporation Table
Type: Table Slot
Units: NOUNITS vs. LENGTH (per day)
Description: day of the year vs. Evaporation Rate
Information: The first of January is 0. The unit type of second column is Length, but this actually implies a rate (length/time) where the time component is the run timestep.
I/O: Required Input
Pan Evaporation Coefficient
Type: Table Slot
Units: NO UNITS
Description: a fractional value between 0 and 1 that represents the portion of potential evaporation which actually occurs
Information:  
I/O: Required Input
Precipitation Rate
Type: SeriesSlot
Units: LENGTH vs. TIME
Description: precipitation intensity for the given timestep
Information:  
I/O: Optional; defaults to 0.0 if not input.
Precipitation Volume
Type: SeriesSlot
Units: VOLUME
Description: precipitation flow rate multiplied by the length of the timestep
Information: Used in the mass balance to solve for storage
I/O: Output only
Surface Area
Type: SeriesSlot
Units: AREA
Description: Reservoir Surface Area calculated from the Elevation Area Table
Information:  
I/O: Output only
The Surface Area is determined using the Pool Elevation and the Elevation Area Table. The Evaporation Rate is looked up in the Evaporation Table according to the current day of the year. Evaporation is calculated using the following equation:
The volume of Precipitation that occurred over the timestep is then calculated with the following equation:
where:
– Evaporation Rate = the Evaporation Rate corresponding to the current day of the year
– Surface Area = the current Surface Area of the Reservoir
– Surface Area(-1) = the Surface Area of the Reservoir at the previous timestep
* Input Evaporation
The Input Evaporation method should be used when the user wants to input the Evaporation Rate directly. This Evaporation Rate is used to compute the volume of water that evaporated over the timestep. Also, the user can input the evaporation volume directly on the Evaporation slot. In that case, the Evaporation Rate is not used to calculated Evaporation.
Slots Specific to This Method
Elevation Area Table
Type: Table Slot
Units: LENGTH vs. AREA
Description: Pool Elevation vs. Surface Area
Information:  
I/O: Required input
Evaporation
Type: SeriesSlot
Units: VOLUME
Description: volume of water lost due to evaporation during the timestep
Information:  
I/O: Output; optional input overrides calculation
Evaporation Rate
Type: SeriesSlot
Units: LENGTH per TIME
Description: rate at which water evaporates from the surface
Information:  
I/O: Optional input, disaggregated by method as described in the Evap and Precip Rate Specification category, or defaults to 0.0 if not specified by the user.
Precipitation Rate
Type: SeriesSlot
Units: LENGTH per TIME
Description: precipitation intensity for a given timestep
Information:  
I/O: Optional input, disaggregated by method as described in the Evap and Precip Rate Specification category, or defaults to 0.0 if not specified by the user.
Precipitation Volume
Type: SeriesSlot
Units: VOLUME
Description: precipitation flow rate multiplied by the length of the timestep
Information: Used in the mass balance to solve for storage
I/O: Output only
Surface Area
Type: SeriesSlot
Units: AREA
Description: Reservoir Surface Area from the Elevation Area Table
Information:  
I/O: Output only
At the beginning of the run, the chosen method in the Evap and Precip Rate Specification category is executed. This category allows you to specify the rates as monthly or periodic slots.
If the user specifies Evaporation directly (via input or rules), the value will be used instead of calculating a value below.
If Evaporation is not specified, the following equation is used to compute the volume of water that evaporated from the Reservoir over the timestep:
The precipitation flow rate over the timestep is calculated as shown in the following equation:
where:
– Surface Area = the current Surface Area of the Reservoir
– Surface Area(-1) = the Surface Area of the Reservoir at the previous timestep
* Monthly Evaporation
In the Monthly Evaporation method, evaporation is calculated linearly from the Evaporation Coefficients entered for each month. This method will not work with a timestep longer than 1 Month. The total evaporated volume is a function of the average Reservoir Surface Area over the timestep, the Evaporation Coefficient, and the length of the timestep. The following slots are specifically associated with this method.
Slots Specific to This Method
Elevation Area Table
Type: TableSlot
Units: LENGTH vs. AREA
Description: Pool Elevation vs. Surface Area
Information:  
I/O: Required input
Evaporation
Type: SeriesSlot
Units: VOLUME
Description: volume of water lost to evaporation during one timestep
Information:  
I/O: Output only
Evaporation Coefficients
Type: TableSlot
Units: LENGTH PER time
Description: rate of evaporation for each month
Information: This slot contains one column of values. The Evaporation Coefficient for each month of the year must be input by the user beginning with the Evaporation Coefficient for January.
I/O: Required input
Precipitation Rate
Type: SeriesSlot
Units: LENGTH per TIME
Description: precipitation intensity for the given timestep
Information: Value must be input by the user for each timestep.
I/O: Optional; defaults to 0.0 if not input.
Precipitation Volume
Type: SeriesSlot
Units: VOLUME
Description: precipitation flow rate multiplied by the length of the timestep
Information: Used in the mass balance to solve for storage
I/O: Output only
Surface Area
Type: SeriesSlot
Units: AREA
Description: Reservoir Surface Area calculated from the Elevation Area Table
Information:  
I/O: Output only
The Surface Area of the Reservoir is calculated based on the Elevation Area Table. The Evaporation is then calculated using the following formula:
The volume of Precipitation that occurred over the timestep is then calculated using the following equation:
where:
– Evaporation Coefficient = the Evaporation Coefficient for the current month
– Surface Area = the current Surface Area of the Reservoir
– Surface Area(-1) = the Surface Area of the Reservoir at the previous timestep
* Pan and Ice Evaporation
The Pan and Ice Evaporation method is used to calculate the volume of evaporation with one of two methods based on the value of the Pan Ice Switch slot for each timestep. The Pan Ice Switch slot is used as an indicator of whether ice is present on the surface of the reservoir. A value of 1.0 in the Pan Ice Switch slot indicates that there is ice cover on the Reservoir that must be taken into account when Evaporation is calculated. A value of 0.0 or any number other than 1.0 in the Pan Ice Switch slot indicates that there is no ice on the surface of Reservoir. The following slots are those specifically associated with this method.
Slots Specific to This Method
Evaporation
Type: Series
Units: VOLUME
Description: volume of water lost to evaporation during the current timestep
Information:  
I/O: Output only
Elevation Area Table
Type: Table
Units: LENGTH vs. AREA
Description: Pool Elevation vs. Surface Area
Information:  
I/O: Required input
K Factor
Type: Series Slot with Periodic Input
Units: VELOCITY per TEMPERATURE_F
Description: factor relating average temperature, in degrees Fahrenheit, to evaporation rate
Information: This slot is a series slot, but the data can be input as a periodic relationship.
I/O: Optional but is required Input if the Pan Ice Switch slot is 1.0
Max Air Temperature
Type: Series
Units: TEMPERATURE in FARENHEIT
Description: maximum air temperature during the timestep
Information:  
I/O: Optional; required only if the Pan Ice Switch slot is 1.0
Min Air Temperature
Type: Series
Units: TEMPERATURE in FARENHEIT
Description: minimum air temperature during the timestep
Information:  
I/O: Optional; required if the Pan Ice Switch slot is 1.0
Pan Evaporation
Type: Series
Units: LENGTH per TIME
Description: evaporation rate from the surface
Information:  
I/O: Optional; only required if the Pan Ice Switch is 0.0
Pan Evaporation Coefficient
Type: Table
Units: DECIMAL
Description: weighing factor for pan evaporation rate
Information:  
I/O: Optional; required if the Pan Ice Switch slot is 0.0
Pan Ice Switch
Type: Series
Units: No Units
Description: indicator of surface ice coverage for each timestep; 1.0 = ice; any other number or 0.0 = no ice.
Information: This slot is a series slot, but the data can be input as a periodic relationship.
I/O: Required input
Precipitation Rate
Type: Series
Units: LENGTH per TIME
Description: precipitation intensity for a given timestep
Information:  
I/O: Optional; defaults to 0.0 if not specified by the user.
Precipitation Volume
Type: Series
Units: VOLUME
Description: precipitation flow rate multiplied by the length of the timestep
Information: Used in the mass balance to solve for storage
I/O: Output only
Surface Area
Type: SeriesSlot
Units: AREA
Description: Reservoir Surface Area from the Elevation Area Table
Information:  
I/O: Output only
Surface Ice Coverage
Type: SeriesSlot
Units: DECIMAL
Description: fraction of the Surface Area which is covered by ice
Information:  
I/O: Optional; only used if the Pan Ice Switch slot is 1.0. Defaults to 0.0 for any timestep not specified by the user.
If the Pan Ice Switch slot is equal to 1.0, ice is present and the following calculation is performed to compute evaporation:
If the calculated Evaporation is less than zero, the Evaporation is set equal to zero.
The Precipitation is calculated with the following equation if the Pan Ice Switch slot is equal to 1.0:
The volume of precipitation that accumulated over the timestep at the Reservoir (Precipitation Volume) is the product of the precipitation flow rate and the timestep.
If the Pan Ice Switch slot is 0.0 or any number other than 1.0, there is no ice and the following calculation is performed to compute Evaporation:
The volume of precipitation that accumulated over the timestep at the Reservoir (Precipitation Volume) is the product of the precipitation flow rate and the timestep.
* Pan and Ice Evaporation, Current Surface Area
This method is exactly the same as the Pan and Ice Evaporation method. It uses the same slots, has the same required inputs and performs the same calculations. The only difference is that this method uses the instantaneous, end of timestep surface area instead of the average surface area over the timestep.
* Periodic Net Evaporation
Periodic Net Evaporation computes the gross evaporation from the reservoir and then subtracts out components of evaporation that would have occurred if the reservoir had not been built. This is the net evaporation and is set in the Evaporation slot. Each area of the submerged reservoir is separate including:
• River
• Streamside
• Terrace, and any
• Remaining areas
Each can have a separate evaporation coefficient and possibly additional components in its computation like temperature. The area of each region is specified in a separate table relating reservoir pool elevation to each region’s area. It is assumed that any precipitation that falls on the Remaining Area would have completely evaporated. The figure shows a sample of the different reservoir areas used in this method.
Figure 29.5   
Slots Specific to This Method
Average Precipitation
Type: Periodic
Units: Velocity (Length per Time)
Description: Slot describing the average precipitation
Information: Typically this would have a yearly period and monthly precipitation values. It is used in the computation of Remaining Evaporation.
I/O: Required Input
Average Air Temperature
Type: Periodic
Units: TemperatureInFahren
Description: Slot describing the average air temperature
Information: Typically this would have a yearly period and monthly temperature values. It is used in computation of Streamside Evaporation and Terrace Evaporation.
I/O: Required Input
Elevation Area Table
Type: Table
Units: Length vs Area
Description: Pool Elevation vs. Surface Area
Information:  
I/O: Required Input
Elevation River Area
Type: Table
Units: Length vs Area
Description: Table relating reservoir Pool Elevation to submerged river area.
Information:  
I/O: Required Input
Elevation Streamside Area
Type: Table
Units: Length vs Area
Description: Table relating reservoir Pool Elevation to submerged streamside area.
Information:  
I/O: Required Input
Elevation Terrace Area
Type: Table
Units: Length vs Area
Description: Table relating Pool Elevation to submerged terrace area
Information:  
I/O: Required Input
Evaporation
Type: Series
Units: Volume
Description: Water lost from the reservoir to evaporation. This is the net evaporation and is the value that is included in the reservoir mass balance.
Information: This is the calculated as Gross Evaporation minus Salvage Evaporation
I/O: Output only
Gross Evaporation
Type: Series
Units: Volume
Description: The total evaporation off the reservoir surface. This is the evaporation that is actually occurring from the reservoir.
Information: This is calculated as GrossEvaporationCoeff times SurfaceAreaAvg converted from a flow to volume.
I/O: Output only
Gross Evaporation Coefficient
Type: Periodic
Units: Velocity (Length per Time)
Description: A table that describes the gross evaporation coefficient as it varies periodically. This is similar to a pan evaporation coefficient.
Information:  
I/O: Required Input
River Evaporation Coefficient
Type: Periodic
Units: Velocity (Length per Time)
Description: A table that describes the river evaporation coefficient as it varies periodically. This is similar to a pan evaporation coefficient.
Information:  
I/O: Required Input
Salvage Evaporation
Type: Series
Units: Volume
Description: The evaporation that would have occurred if the reservoir were not in place.
Information:  
I/O: Output Only
Streamside Coefficient
Type: Periodic
Units: VelocityPerTemperature_F (i.e. Length per Time per Temperature_F)
Description: Periodic table of coefficients
Information: Typically this represents a unit depth per month per degree Fahrenheit (e.g. inches per month per degree Fahrenheit)
I/O: Required Input
Surface Area
Type: Series
Units: Area
Description: Reservoir surface area computed from a lookup on the Elevation Area table
Information:  
I/O: Output only
Terrace Coefficient
Type: Periodic
Units: VelocityPerTemperature_F (i.e. Length per Time per Temperature_F)
Description: Periodic table of coefficients
Information: Typically this represents a unit depth per month per degree Fahrenheit (e.g. inches per month per degree Fahrenheit)
I/O: Required Input
The method will be passed in a current estimate of Surface Area and Average Surface Area. The latter is an average of the current estimate and previous timestep’s value. In this description, it is called SurfaceAreaAvg. Similarly, StreamsideAreaAvg, RiverAreaAvg, TerraceAreaAvg and RemainingAreaAvg are all averages of the current and previous values.
In the following steps, the FlowToVolume and VolumeToFlow notation indicates that the specified expression will be converted from a flow to a volume (or vice versa) using the timestep length. This is necessary for the units to work correctly as evaporation [Volume units] is computed as a coefficient [Length/Time units] times an area [L2 units].
Note:  That in the following steps, the slots are in bold while intermediate values are not.
The method does the following:
1. Get the value from the periodic Gross Evaporation Coefficient slot. If not valid, issue an error.
2. Compute Gross Evaporation:
3. Get the value from the periodic River Evaporation Coefficient slot. If not valid, issue an error.
4. Look up the Pool Elevation at t and t-1 on the Elevation River Area table to get the RiverArea at t and t-1. Then
5. Compute River Evaporation:
This simulates that the river evaporation that would have occurred without the reservoir is a function of area and coefficient.
6. Get the value from the periodic Streamside Coefficient slot. If not valid, issue an error.
7. Look up the Pool Elevation at t and t-1 on the Elevation Streamside Area table to get the StreamsideArea at t and t-1. Then:
8. Get the value from the periodic AverageTemperature slot. If not valid, issue an error.
9. Compute Streamside Evaporation:
This simulates that the streamside evaporation that would have occurred without the reservoir is a function of area, coefficient, and average air temperature.
10. Get the value from the periodic Terrace Coefficient slot. If not valid, issue an error.
11. Look up the Pool Elevation at t and t-1 on the Elevation Terrace Area table to get the Terrace Area at t and t-1. Then:
12. Compute Terrace Evaporation:
This simulates that the terrace evaporation that would have occurred without the reservoir is a function of area, coefficient, and average air temperature.
13. Compute the average Remaining Area as follows:
If RemainingAreaAvg is less than zero, an error will be issued as the table data is incorrect.
14. Get the value from the periodic Average Precipitation. If not valid, issue an error.
15. Compute RemainingEvaporation:
This simulates that all of the precipitation on the Remaining Area would have evaporated.
16. Compute Salvage Evaporation:
17. Compute Evaporation as follows:
The Evaporation is then a volume that is removed from the reservoir mass balance in the dispatch method.
* Single Evaporation
In the Single Evaporation method, evaporation is calculated linearly from the Single Evaporation Coefficient entered by the user. The total evaporated volume is a function of the average Reservoir Surface Area over the timestep, the Single Evaporation Coefficient, and the length of the timestep. The following slots are specifically associated with this method.
Slots Specific to This Method
Elevation Area Table
Type: Table Slot
Units: LENGTH vs. AREA
Description: Pool Elevation vs. Surface Area
Information:  
I/O: Required input
Evaporation
Type: SeriesSlot
Units: VOLUME
Description: volume of water lost to evaporation during one timestep
Information:  
I/O: Output only
Single Evap Coeff
Type: Table Slot
Units: LENGTH PER time
Description: rate of evaporation
Information: This slot contains a single value that represents the evaporation rate.
I/O: Required input
Precipitation Rate
Type: SeriesSlot
Units: LENGTH per TIME
Description: precipitation intensity for the given timestep
Information: Value must be input by the user for each timestep.
I/O: Optional; defaults to 0.0 if not input.
Precipitation Volume
Type: SeriesSlot
Units: VOLUME
Description: precipitation flow rate multiplied by the length of the timestep
Information: Used in the mass balance to solve for storage
I/O: Output only
Surface Area
Type: SeriesSlot
Units: AREA
Description: Reservoir Surface Area calculated from the Elevation Area Table
Information:  
I/O: Output only
The Surface Area of the Reservoir is calculated based on the Elevation Area Table. The Evaporation is then calculated using the following formula:
The volume of Precipitation that occurred over the timestep is then calculated using the following equation:
where:
– Evaporation Coefficient = SingleEvapCoeff entered by the user
– Surface Area = the current Surface Area of the Reservoir
– Surface Area(-1) = the Surface Area of the Reservoir at the previous timestep
Evap and Precip Rate Specification
This category allows you to choose how the evaporation and precipitation rates will be specified. The category is only available when the Input Evaporation method in the Evaporation and Precipitation category is specified.
* None
This is the default method; that is, the rates must be input, set by a rule, or they default to 0.0.
* Monthly Rates
This method allows you to specify the evaporation and precipitation rates as a series of monthly values for the entire run.
Evaporation Rate Monthly
Type: Series Slot
Units: Velocity
Description: The evaporation rate for each month of the run.
Information: You must set the timestep for this series slot to be 1 Month. Because this slot’s timestep is 1 Month, it is most likely different than the run timestep. As a result, if you “synchronize objects”, you must select the toggle in the synchronization control to “Exclude Slots with Different Timestep from Run.” This will prevent changing the timestep of this slot when other slots are synchronized.
I/O: Optional input
Precipitation Rate Monthly
Type: Series Slot
Units: Velocity
Description: The precipitation rate for each month of the run.
Information: You must set the timestep for this series slot to be 1 Month. Because this slot’s timestep is 1 Month, it is most likely different than the run timestep. As a result, if you “synchronize objects”, you must select the toggle in the synchronization control to “Exclude Slots with Different Timestep from Run.” This will prevent changing the timestep of this slot when other slots are synchronized.
I/O: Optional input
Method Details
At the beginning of run, the method disaggregates the Evaporation Rate Monthly and Precipitation Rate Monthly to the Evaporation Rate and Precipitation Rate slots, respectively. If the timestep of the run is 1 Month, it uses the values directly. If the timestep of the run is less than a month, it look ups the month that contains the given timestep and uses that value. No interpolation is performed.
If the run timestep is 1 Year, an error is issued.
If the two slots do not have a timestep of 1 Month but have inputs, an error is issued.
If there is no value in the monthly slot for a given month, then the rate is set to 0.0.
* Periodic Rates
This method allows you to specify the evaporation and precipitation rates as a periodic relationship.
Evaporation Rate Periodic
Type: Periodic Slot
Units: Velocity
Description: The evaporation rate as a periodic relationship.
Information: Like other periodic slots, you can choose the period and whether to interpolate or lookup.
I/O: Required Input
Precipitation Rate Periodic
Type: Periodic Slot
Units: Velocity
Description: The precipitation rate as a periodic relationship.
Information: Like other periodic slots, you can choose the period and whether to interpolate or lookup. If you do not wish to model precipitation, you still must enter a zero in this periodic slot.
I/O: Required Input
Method Details
At the beginning of run, the method sets the Evaporation Rate and Precipitation Rate slots by looking up (or interpolating as configured on the periodic slot) the given timestep in the Evaporation Rate Periodic and Precipitation Rate Periodic slots, respectively. If accessing the periodic slot fails due to missing values, then an error is issued and the run stops.
Bank Storage
The Bank Storage methods are used to calculate the volume of water stored in the Reservoir banks. These methods also calculate the change in the volume of water stored in the Reservoir banks from one timestep to the next.
* None
None should be chosen if the user does not want to calculate the amount of Bank Storage in the Reservoir. This is the default method for the Bank Storage category. Bank Storage and the Change in Bank Storage are set to zero but are not displayed. There are no slots specifically associated with this method. No calculators are performed in this method.
* Input Bank Storage
The Input Bank Storage method allows users to directly input values into the Bank Storage slot or to set these values using a rule. Change in Bank Storage is calculated internally in RiverWare for use in the mass balance equations.
Slots Specific to This Method
Bank Storage
Type: Series Slot
Units: Volume
Description: volume of water stored in the reservoir banks
Information:  
I/O: Input Only
Change in Bank Storage
Type: Series Slot
Units: Volume
Description: change in volume of water stored in the reservoir banks
Information:  
I/O: Output only
* CRSS Bank Storage
The CRSS Bank Storage method replicates the U.S. Bureau of Reclamation’s CRSS bank storage calculation. The Bank Storage and the Change in Bank Storage are calculated using the Reservoir Storage and the Bank Storage Coefficients.
Slots Specific to This Method
Bank Storage
Type: Series Slot
Units: Volume
Description: volume of water stored in the reservoir banks
Information:  
I/O: Output only
Bank Storage Coefficient
Type: Table Slot
Units: No Units vs. No Units
Description: gain or loss of storage vs. change in bank storage
Information: The first coefficient (column zero) is for increasing storage and the second coefficient is for decreasing storage.
I/O: Required input
Change in Bank Storage
Type: Series Slot
Units: Volume
Description: change in volume of water stored in the reservoir banks
Information:  
I/O: Output only
There are two ways Bank Storage can be calculated depending on the current Storage of the Reservoir. If the Reservoir’s current Storage is greater than the Reservoir’s Storage at the previous timestep, the Storage is increasing. Bank Storage is calculated using the following equation:
If the Reservoir’s current Storage is less than the Reservoir’s Storage at the previous timestep, the Storage is decreasing. Bank Storage is calculated using the following equation:
The Change in Bank Storage is calculated using the following equation regardless of which method was used to compute Bank Storage.
where:
– Bank Storage = the volume of water stored in the banks of the Reservoir at the current timestep
– Bank Storage(-1) = the volume of the water stored in the banks of the Reservoir at the previous timestep.
– Storage = the volume of water in the Reservoir at the current timestep
– Storage(-1) = the volume of water in the Reservoir at the previous timestep
– Average Stage Change
The Average Stage Change method calculates the Bank Storage and Change in Bank Storage based on the flow from storage. The flow from storage is a function of the average stage change over a user defined number of timesteps.
Slots Specific to This Method
Ave Stage Change Coeffs
Type: Table Slot
Units: Area per Time and Flow
Description: coefficient describing flow for a given change in pool elevation and a constant representing flow from bank storage
Information:  
I/O: Required input
Bank Storage
Type: Series Slot
Units: Volume
Description: volume of water stored in the reservoir banks
Information:  
I/O: Output only
Change in Bank Storage
Type: Series Slot
Units: Volume
Description: change in volume of water stored in the reservoir banks
Information:  
I/O: Output only
Timesteps to Average
Type: Table Slot
Units: No Units
Description: number of timesteps used to calculate average pool elevation.
Information:  
I/O: Required input
The average stage change is calculated using the following equation:
The change in flow to bank storage is calculated using the following equation:
The flow is converted to a volume by multiplying the value by the current timestep. The Change in Bank Storage is calculated using the following equation:
Diversion from Reservoir
The Diversion from Reservoir user methods are applicable when a reservoir is linked to a diverting object (e.g. AggDiversionSite, AggDistributionCanal, or Diversion Object). These methods simply create the slots which must be linked (by the user) to slots on the diverting object.
* None
This is the default for the Diversion from Reservoir category. It is used when the reservoir is not linked to a diverting object. If the reservoir is linked to a diverting object and this method is selected, the object will not solve correctly. There are no slots specifically associated with this method.
* Available Flow Based Diversion
This method must be selected when a reservoir is linked to either an AggDiversionSite, AggDistributionCanal, or a Diversion Object that is using the Available For Diversion Linked method. Selecting this method allows the Available for Diversion slot to be available for linking. The AggDiversionSite, AggDistributionCanal, and Diversion objects contain more information about diverting water from a reservoir.
Slots Specific to This Method
Available for Diversion
Type: Series
Units: Flow
Description: represents the amount of water that may be diverted from the reservoir
Information:  
I/O: Optional; can be input by the user or determined by RiverWare.
Available for Diversion can either be input by the user or calculated by the reservoir. If it is not input it is set as the previous Storage divided by the timestep length. The value is limited to not be negative.
No other calculations are performed if this method is selected.
* Head Based Diversion
This method may be selected when a reservoir is linked to a Diversion Object. Selecting this method allows the Previous Pool Elevation slot to be available for linking. The Diversion Object contains more information about diverting water from a Reservoir.
Slots Specific to This Method
Previous Pool Elevation
Type: Series
Units: Length
Description: Pool Elevation value for the previous timestep
Information:  
I/O: Output only
Diversion Power
The methods in this category calculate power generated on the diversion from the reservoir. Selecting a method other than None in this category will make the Diversion Tailwater and Diversion Power Bypass categories available. If a method other than None is selected for Diversion Power, then a method other than None must be selected for Diversion Tailwater.
* None
This is the default method for the Diversion Power category. No calculations are performed in this method, and there are no slots specifically associated with this method.
* Diversion Power Efficiency Curve
The Diversion Power Efficiency Curve method is similar to the Plant Efficiency Curve method in the Power category with the exception that the method does not allow Diversion Energy to input or set by rules (nor can Diversion Energy be set with the Best Efficiency or Max Capacity flags). Diversion Energy and Diversion Power are only calculated as outputs. The method calculates Diversion Power by a 3-D interpolation of the Diversion Power Table using the current, average Diversion Operating Head and Diversion Turbine Flow. The Diversion Power Coefficient is calculated as Diversion Power divided by Diversion Turbine Flow. Alternatively, the user can input Diversion Power Coefficient, and then Diversion Power is calculated directly as the Diversion Power Coefficient multiplied by the Diversion Turbine Flow.
Slots Specific to This Method
Diversion Power Table
Type: Table Slot
Units: Length vs Flow vs Power
Description: 3-D table representing the power characteristics of the diversion power plant, used to calculate power using interpolation
Information: Data must be entered into the table in increasing, blocks of the same Diversion Operating Head. For every block of the same Diversion Operating Head in column 1, Diversion Turbine Flow should be listed in increasing order in column 2 and the corresponding Diversion Power in column 3. The first row for each Diversion Operating Head must be for zero Diversion Turbine Flow and zero Diversion Power.
I/O: Required input
 
Div Head
Turbine Flow
Div Power
30
0
0
30
100
100
30
200
175
40
0
0
40
100
125
40
220
195
50
0
0
50
110
147
50
250
205
Diversion Max Turbine Table
Type: Table Slot
Units: Length vs Flow
Description: The maximum Diversion Turbine Flow as a function of Diversion Operating Head
Information: RiverWare automatically populates this table at the start of the run using the Diversion Power Table. The first column contains the Diversion Operating Head values from the Diversion Power Table, one row for each unique Diversion Operating Head in increasing order. The second column contains the maximum Diversion Turbine Flow value for each Diversion Operating Head.
I/O: Output only
Diversion Power Cap Fraction
Type: Series Slot
Units: Fraction
Description: This is the percentage of full capacity of the turbine units in the diversion power plant. For example, if only half of the turbine are operational (and they are all the same), this value would be 0.5.
Information: This must be a number between 0 and 1 (inclusive). If not input or set by rules, this slot is automatically set to 1.
I/O: Optional input, if not, value is set to 1
Diversion Operating Head
Type: Series Slot
Units: Length
Description: The difference between the average Pool Elevation and the Diversion Tailwater Elevation
Information:  
I/O: Output only
Diversion Turbine Flow
Type: Series Slot
Units: Flow
Description: The diversion flow that passes through the turbines to generate power
Information: If the slot is not input or set by rules, then it is calculated as the difference between Diversion and Diversion Power Bypass if Diversion Power Bypass is input or set by rules. If neither Diversion Turbine Flow nor Diversion Power Bypass is input or set by rules, then Diversion Turbine Flow is calculated as the lesser of Diversion and the calculated maximum diversion turbine flow based on the Diversion Max Turbine Table and the current Diversion Operating Head. It is not permissible to have both Diversion Turbine Flow and Diversion Power Bypass as input or set by rules.
I/O: Optional input or output
Diversion Power
Type: Series Slot
Units: Power
Description: The power generated from flow through the reservoir diversion
Information: If Diversion Power Coefficient is not input or set by rules, Diversion Power is calculated using a 3-D interpolation on the Diversion Power Table given the current, average Diversion Operating Head and the current Diversion Turbine Flow, scaled by the Diversion Power Cap Fraction. If Diversion Power Coefficient is input or set by rules, Diversion Power is calculated as the Diversion Power Coefficient multiplied by the Diversion Turbine Flow.
I/O: Output only
Diversion Energy
Type: Series Slot
Units: Energy
Description: The energy generated from flow through the reservoir diversion
Information: Calculated as the Diversion Power multiplied by the timestep length
I/O: Output only
Diversion Power Coefficient
Type: Series Slot
Units: Power per Flow
Description: The power generation per unit of flow through the turbines on the reservoir diversion
Information: If this slot is input or set by rules, it is used directly to calculate Diversion Power. If it is not input or set by rules, then it is calculated as Diversion Power divided by Diversion Turbine Flow. If either Diversion Power, Diversion Turbine Flow or Diversion Power Cap Fraction is zero, then this slot will be zero.
I/O: Optional input or output
At the start of the run, the Diversion Max Turbine Table slot is populated using the Diversion Power Table. The first column is populated with each unique Diversion Operating Head value from the Diversion Power Table, in ascending order. The second column is populated with the corresponding maximum diversion turbine flow value.
When the method executes, Diversion will already be known. The method calls the selected Diversion Tailwater method to calculate the Diversion Tailwater Elevation. If the default method, None, is selected for the Diversion Tailwater category, the run will abort and an error message will be issued.
The method then calculates the Diversion Operating Head as follows:
The method calculates the maxDiversionTurbineFlow by interpolating the Diversion Max Turbine Table slot using the Diversion Operating Head. The value is scaled by the Diversion Power Cap Fraction.
If Diversion Turbine Flow is specified (input or set by rules) it is checked against the maxDiversionTurbineFlow, and if the specified value exceeds the max, the run will abort with an error message. Otherwise a temporary turbine flow is calculated.
If Diversion Power Bypass is not input or set by rules, or if the Diversion Power Bypass method is None, the Diversion Power Bypass will have defaulted to zero at this point.
If the combined temporary turbine flow plus the current Diversion Power Bypass is less than the (total) Diversion, then the method then calls the selected Diversion Power Bypass method to increase the Diversion Power Bypass to make up the difference. If it is not possible for the turbine flow plus the bypass to equal the total Diversion, either due to the values being specified (input or rules) or due to max capacity limits, then the run will abort with an error message.
The method then sets the Diversion Turbine Flow slot as follows:
If Diversion Power Coefficient is specified (input or rules), it is used to calculate Diversion Power directly, as follows:
Otherwise, Diversion Power is calculated by a 3-D interpolation on the Diversion Power Table using Diversion Operating Head and Diversion Turbine Flow, and Diversion Power Coefficient is calculated as follows:
Diversion Energy is then calculated as Diversion Power multiplied by the timestep length.
Note:  Regarding Diversion Power Cap Fraction: If the Diversion Power Cap Fraction is input by the user, it is necessary for the Diversion Power Table to be scaled back to account for the operating points when the turbines are operating at less than 100%. To do this, Diversion Turbine Flow is divided by the Diversion Power Cap Fraction. This point is then found in the Diversion Power Curve for the current Diversion Operating Head, and the power is found using 3-D interpolation. Finally the power is multiplied by the Diversion Power Cap Fraction to get the actual Diversion Power produced for the current timestep.
Diversion Tailwater
The methods in this category calculate the elevation of the tailwater on the diversion from a reservoir. This category is dependent on the selection of a method other than the default method, None, in the Diversion Power category. If a method other than the default is selected for Diversion Power, then a method other than the default, None, must be selected for Diversion Tailwater.
* None
This is the default method for the Diversion Tailwater category. No calculations are performed in this method, and there are no slots specifically associated with this method.
* Diversion Base Value Plus Lookup
The Diversion Base Value Plus Lookup method computes the Diversion Tailwater Elevation by adding the average Diversion Tailwater Base Value (over the timestep) to a function of Diversion defined in the Diversion Tailwater Table slot. This method is similar to the Base Value Plus Lookup Table method in the Tailwater category but uses the Diversion and Diversion Tailwater Base Value slots instead of Outflow and Tailwater Base Value. The Diversion Tailwater Base Value may be input by the user or linked to another slot, such as the Pool Elevation of another Reservoir. If the Tailwater Base Value is neither input nor linked, it is automatically set to zero.
Slots Specific to This Method
Diversion Tailwater Table
Type: Table Slot
Units: Flow vs Length
Description: This slot defines the relationship between Diversion and the Diversion Tailwater Elevation; Diversion vs either the diversion tailwater elevation or the tailwater elevation increment
Information: If the Diversion Tailwater Base Value is non-zero, the Diversion Tailwater Table gives values of incremental increase in Tailwater Elevation over th base value. Otherwise, the table gives the Diversion Tailwater Elevation values. The first row of the table should be for a Diversion flow of zero.
I/O: Required input
Diversion Tailwater Base Value
Type: Series Slot
Units: Length
Description: the base elevation of the diversion tailwater, such as a downstream stage
Information: If the slot is not input or linked, it defaults to 0.
I/O: Optional, can be input or linked
Diversion Tailwater Elevation
Type: Series Slot
Units: Length
Description: the water surface elevation of the tailwater from the reservoir diversion
Information: This slot is used to compute Diversion Operating Head in Diversion Power calculations
I/O: Output only
When this method is executed, the Diversion value will already be known. If the Diversion Tailwater Base Value is neither linked, input nor set by rules, then it will default to zero.
The following steps are performed to calculate Diversion Tailwater Elevation.
1. TWTemp is obtained from a table interpolation on the Diversion Tailwater Table using Diversion.
If both Diversion Tailwater Base Value[t] and Diversion Tailwater Base Value[t-1] are known, then the Diversion Tailwater Elevation is calculated as follows:
2. If Diversion Tailwater Base Value[t] is known, but Diversion Tailwater Base Value[t-1] is not known, then the Diversion Tailwater Elevation is calculated as follows:
3. If Diversion Tailwater Base Value[t-1] is known, but Diversion Tailwater Base Value[t] is not known, then the Diversion Tailwater Elevation is calculated as follows:
4. If neither Diversion Tailwater Base Value[t] nor Diversion Tailwater Base Value[t-1] are known but Diversion Tailwater Elevation[t-1] is known, the current timestep’s Diversion Tailwater Elevation is set equal to Diversion Tailwater Elevation[t-1].
5. If neither Diversion Tailwater Base Value[t], Diversion Tailwater Base Value[t-1], nor Diversion Tailwater Elevation[t-1] are known, or if Diversion is not known, the method will exit and wait for more information.
Diversion Power Bypass
The methods in this category calculate the portion of the diversion from a reservoir that does not pass through the turbines but rather through a bypass structure. This category is dependent on the selection of a method other than the default method, None, in the Diversion Power category.
* None
This is the default method for the Diversion Power Bypass category. No calculations are performed in this method, and there are no slots specifically associated with this method. If this method is selected, it is assumed that all Diversion flow passes through the turbines.
* Bypass Capacity Table
This method sets Diversion Power Bypass to the difference between Diversion and Diversion Turbine Flow if it is not input or set by rules, and it checks that the Diversion Power Bypass does not exceed the maximum based on the Diversion Power Bypass Table. This functions similarly to the Regulated method in the Spill category.
Slots Specific to This Method
Diversion Power Bypass Table
Type: Table Slot
Units: Length vs Flow
Description: Pool Elevation vs. the corresponding maximum diversion power bypass values
Information:  
I/O: Required input
Diversion Power Bypass
Type: Series
Units: Flow
Description: Diversion flow that does not pass through power turbines
Information: If not input or set by rules, Diversion Power Bypass will be set equal to the difference between Diversion and Diversion Turbine Flow.
I/O: Optional input or output
At the beginning of the run, if Diversion Power Bypass is not specified (input or rules), it is initially set to a default value of zero.
On each timestep, the method first checks if both Diversion Power Bypass and Diversion Turbine Flow are input or set by rules. If so, the run will abort with an error message. It necessary to leave at least one of these slots as a free variable.
The method then calculates max diversion power bypass by performing a table interpolation on the Diversion Power Bypass Table using the average Pool Elevation from the end of the current timestep and end of the previous timestep.
If Diversion Power Bypass is input or set by a rule, then the value is checked against the max diversion power bypass, and if it exceeds the max, the run will abort with an error message.
If Diversion Power Bypass is not input or set by a rule, then it is calculated as follows:
The calculated Diversion Power Bypass value is checked against the max diversion power bypass, and if it exceeds the max, the run will abort with an error message.
Seepage
The Seepage methods are used to calculate the amount of water lost through the face of the dam. The volume of seepage computed during the execution of these methods affects the mass balance of the Reservoir.
* None
None is the default for the Seepage category. It is used when the user does not want to calculate the flow of water through the face of the dam.
* Input Seepage
The Input Seepage method is used when it is desired to have the seepage slot as input or set by a rule.
Slots Specific to This Method
Seepage
Type: SeriesSlot
Units: FLOW
Description: flow of water through the dam face
Information: Seepage is not included in the Outflow of the reservoir and will need to be linked separately if the water does in fact go downstream.
I/O: Input only
* Linear Seepage
The Linear Seepage method calculates the seepage from the face of the dam. This calculation is based on the Pool Elevation of the Reservoir and specified coefficients.
Slots Specific to This Method
Seepage
Type: SeriesSlot
Units: FLOW
Description: flow of water through the dam face
Information: Seepage is not included in the Outflow of the reservoir and will need to be linked separately if the water does in fact go downstream.
I/O: Output only
Seepage Coefficients
Type: TableSlot
Units: LENGTH, AREA per TIME, FLOW
Description: coefficients in the linear equation for seepage
Information: The first coefficient (column zero) is the base elevation of the dam. The second coefficient is the slope of the linear equation for seepage. The third coefficient is the intercept of the linear equation for seepage.
I/O: Required Input
The calculation for Seepage in this method is fairly straightforward. A linear model is used. The coefficient are user inputs. The following equation is used to compute Seepage:
* Single Seepage Value
The Single Seepage Value method sets the seepage from the face of the dam equal to a scalar value.
Slots Specific to This Method
Seepage
Type: Series
Units: Flow
Description: Flow of water through the dam face
Information: Seepage is not included in the Outflow of the reservoir and will need to be linked separately if the water does in fact go downstream.
I/O: Optional Input
Single Seepage Value
Type: Scalar
Units: Flow
Description: seepage value to be applied to each timestep
Information:  
I/O: Required Input
This method is executed at the beginning of the run. For each timestep from the initial timestep through the end of the run (plus post run dispatching timesteps too), if the Seepage is not input, the Seepage is set equal to the Single Seepage Value.
The method will issue an error if there is not a valid value in the Single Seepage Value slot.
Note:  This structure allows some flexibility. Seepage can be input/rules when necessary but will use the scalar value when not input.
* Linked Seepage
This method is intended to be used when linking a Reservoir object with a Groundwater Storage object that uses the Head Based Boundary Condition method in the Solution Type category. See “Head Based Boundary Condition” for details.
Slots Specific to This Method
Seepage
Type: Series
Units: Flow
Description: Flow of water out of the reservoir, often into groundwater
Information: A positive value is flow out of the reservoir.
I/O: Output only if linked to a Groundwater object (typical); otherwise required input
Previous Pool Elevation
Type: Series
Units: Length
Description: Pool Elevation at the end of the previous timestep
Information:  
I/O: Output only
This method does not do any calculations; it just adds the appropriate slots. The Reservoir does provide the Previous Pool Elevation which is then linked to the Groundwater object Elevation Previous. The Groundwater object computes the Inflow from Surface Water, which is linked back to the Seepage slot on the reservoir. The Seepage is used in the Reservoir mass balance.
Figure 29.6   
See “Head Based Boundary Condition” for details on how Seepage is calculated as Inflow from Surface Water on the linked Groundwater object.
Operating Levels
This category enables the user to specify operating levels for the reservoir. Operating levels serve as a normalizing metric for reservoir contents. This metric is used by reservoir-balancing algorithms to determine the relative “fullness” of reservoirs. On individual reservoirs, it also serves to identify the elevations that correspond to pool boundaries, such as the top of the conservation pool or the top of the flood pool.
* None
This is the default method; no slots are instantiated and no calculations are performed.
* Conservation Pools
This method allows the user to specify that there is a conservation pool for this reservoir.
Slots Specific to This Method
Operating Level Table
Type: PeriodicSlot
Units: Time vs Length at Operating Levels
Description: table describing the seasonal variation of elevation in a reservoir at each of the user-designated operating levels.
Information: number of rows defined by the number of date points (user input); number of columns defined by the number of operating levels (user input). Each column represents the time-varying elevations for a particular Operating Level. The integer value of the Operating Level is in the first row (header) of each column. An elevation value is input for each operating level on each date point. All entered values have units of length. User can select whether to interpolate between values in time, or to have constant values until the next timestep.
I/O: Required Input
Operating Level
Type: SeriesSlot
Units: None
Description: The computed operating level
Information: This slot is computed using the pool elevation and the Operating Level Table
I/O: Output only
Operating Level Storage Table
Type: PeriodicSlot
Units: Time vs Volume at Operating Levels
Description: table describing the seasonal variation of storage in a reservoir at each of the user-designated operating levels.
Information: Each column represents the time-varying storage for a particular Operating Level. The integer value of the Operating Level is in the header of each column. This table is generated from the Operating Level Table and has the same number of rows and columns. The values in the table are storage values (looked up from the elevation volume table) whereas the values in the Operating Level Table are elevations. This slot is computed at run-time so it is read-only to the user. All changes should be made in the Operating Level Table.
I/O: Output Only
Top of Conservation Pool
Type: ScalarSlot
Units: none
Description: Operating level (as defined in Operating Level Table) corresponding to the top of the conservation pool.
Information:  
I/O: Input
Bottom of Conservation Pool
Type: ScalarSlot
Units: none
Description: Operating level (as defined in Operating Level Table) corresponding to the bottom of the conservation pool.
Information: Used by some conservation pool operations algorithms, along with the Top of Conservation Pool slot, to identify the volume in the conservation pool.
I/O: Input Only
Conservation Pool Initial Empty Space
Type: SeriesSlot
Units: None
Description: The inflow required to fill the conservation pool at the beginning of timestep, based on the ending storage at the prior timestep, taking into account evaporation, precipitation, etc.
Information: This slot is computed at the beginning of the timestep; evaporation rates and other such factors that are not already defined at the beginning of timestep will not be taken into account in this computation. This slot is used by the water rights allocation solution algorithm to compute physical constraints and by storage accounts to compute allocation requests.
I/O: Output only
Conservation Pool Storage
Type: Series
Units: Volume
Description: This is the computed volume of water in the conservation pool.
Information: This value is always non-negative.
I/O: Output only
Conservation Pool Full Storage
Type: Series
Units: Volume
Description: This is the possible volume of water that could be stored in the Conservation pool. It is computed as the Storage at the top of the conservation pool minus the storage at the bottom of the conservation pool
Information:  
I/O: Output Only
Conservation Pool Storage Fraction
Type: Periodic Slot
Units: Fraction
Description: The values in the periodic slot represent the percentage of the conservation pool storage at each level (column) in the Operating Level Table.
Information: It has identical dimension including dates and levels as the Operating Level Table. This table will be populated at beginning of run. The Operating Level Table will be its “source” slot.
I/O: Output only
At the beginning of run, the Conservation Pool Storage Fraction is populated as follows: For each date (row) and each level, n, (column), the equation to compute the fraction:
Note:  The Conservation Pool Storage Fraction is limited to be always between 0 and 1 (0% to 100%).
At the end of each dispatch method, the Operating Level series slot is computed by looking up the pool elevation and date on the Operating Level Table.
Next, Conservation Pool Full Storage is calculated as follows.
The Conservation Pool Storage is computed as follows:
If the Operating Level is greater than the Top of the Conservation Pool,
else if the Operating Level is less than the Bottom of the Conservation Pool,
else
* Conservation and Flood Pools
This method allows the user to specify that there is a conservation and a flood pool for this reservoir.
Slots Specific to This Method
This method is an extension of the Conservation Pool method, and selecting this method causes all the slots for Conservation Pool to become available, along with the following:
Top of Flood Pool
Type: ScalarSlot
Units: No Units
Description: Operating level (as defined in Operating Level Table) corresponding to the top of flood pool.
Information:  
I/O: Required Input
Flood Pool Storage
Type: Series
Units: Volume
Description: This is the computed volume of water in the flood pool.
Information: This value is always non-negative.
I/O: Output Only
Flood Pool Full Storage
Type: Series
Units: Volume
Description: This is the possible volume of water that could be stored in the Flood pool. It is computed as the Storage at the top of the flood pool minus the storage at the top of the conservation pool.
Information:  
Flood Pool Storage Fraction
Type: Periodic Slot
Units: Fraction
Description: The values in the periodic slot represent the percentage of the flood pool storage at each level (column) in the Operating Level Table.
Information: It has identical dimension including dates and levels as the Operating Level Table. This table will be populated at beginning of run. The Operating Level Table will be its “source” slot.
I/O: Output only
At the beginning of run, the Conservation Pool Storage Fraction is populated as described above. Then, the Flood Pool Storage Fraction is populated as follows: For each date (row) and each level, n, (column), the equation to compute the fraction is:
Note:  The Flood Pool Storage Fraction is limited to be always greater than 0. But, it can be larger than 1 (100%). For levels above the flood pool, the percentage will be greater than 100%.
At the end of each dispatch method, the Operating Level series slot is computed by looking up the pool elevation and date on the Operating Level Table. Next, all slots associated with the Conservation Pool are computed and set as described above. Then, Flood Pool Full Storage is calculated as follows:
The Flood Pool Storage is computed as follows:
If the Operating Level is less than the Top of the Conservation Pool,
else
Note:  The Flood Pool Storage may be larger than the Flood Pool Full Storage. This indicates the reservoir is above the flood pool and is surcharging.
Conditional Operating Levels
This category provides methods that allows the user to use alternative operating level tables based on conditions in the run.
* None
This is the default method; no slots are instantiated and no calculations are performed. The original Operating Level Table is used for all computations.
* Sum Inflows over Interval
This method allows an alternative operating level table (i.e. a guide curve) to be used starting on a certain date if a certain combination of flows are high enough for a specified time range.
For example, if there has been a total of 200,000 acre-feet of total inflows into a specific reservoir during the months of March, April, and May, then on June 15th, the method would switch the reservoir operations to follow an alternative table. On October 15th, the reset date, the reservoir will once again use the original Operating Level Table.
Slots Specific to This Method
Operating Level 2 Table
Type: Periodic
Units: Time vs Length at Operating Levels
Description: This is the alternative operating level table that is used when indicated by hydrologic conditions. This table describes the seasonal variation of elevation in a reservoir at each of the user-designated operating levels.
Information: Number of rows defined by the number of date points (user input); number of columns defined by the number of operating levels (user input). Each column represents the time-varying elevations for a particular Operating Level. The integer value of the Operating Level is in the first row (header) of each column. An elevation value is input for each operating level on each date point. All entered values have units of length. User can select whether to interpolate between values in time, or to have constant values until the next timestep. This table should have the same dimensions (rows and columns) as the Operating Level Table.
I/O: Required Input
Operating Level 2 Trigger Volume
Type: Scalar
Units: Volume
Description: The volume of inflows (Inflow Sum slot) between the criteria start and finish (specified on the Operating Level 2 Dates slot) that causes the reservoir to use the Operating Level 2 Table rather than the original Operating Level Table.
I/O: Required Input or an error will be issued at the start of run.
Operating Level 2 Dates
Type: Table
Units: DateTime
Description: This table has 4 columns. The first and second columns are the “Criteria Interval Start DateTime” and “Criteria Interval End DateTime” between which the flow volume is summed and compared to the Operating Level 2 Trigger Volume. The third column is the “Trigger DateTime” at which the reservoir will check the conditions and possibly use the Operating Level 2 Table rather than the original Operating Level Table. The fourth column is the “Reset DateTime” at which the reservoir will use the Operating Level Table again.
Information: The units for this slot are DateTime which can be an absolute or partially specified DateTime. The default user units are “MonthAndDay”. Partially specified DateTime are converted to fully specified DateTime using information from the current timestep to fill in the missing pieces of the partially specified timestep. Thus, if the DateTime is partially specified, it must be able to evaluate to a timestep in the model or an error will be issued.
I/O: Required input or an error will be issued at the start of run.
Operating Level Storage 2 Table
Type: Periodic
Units: Storage
Description: This represents the Storage associated with the elevations in the Operating Level 2 Table.
Information: This slot is created at the beginning of run. The Operating Level 2 Table is its “source” slot.
I/O: Output Only
Conservation Pool Storage Fraction 2
Type: Periodic Slot
Units: Fraction
Description: The values in the periodic slot represent the percentage of the conservation pool storage at each level (column) in the Operating Level Storage 2 Table.
Information: It has identical dimension including dates and levels as the Operating Level Storage 2 Table. This table will be populated at beginning of run. The Operating Level 2 Table will be its “source” slot.
I/O: Output only
Flood Pool Storage Fraction 2
Type: Periodic Slot
Units: Fraction
Description: The values in the periodic slot represent the percentage of the flood pool storage at each level (column) in the Operating Level 2 Table.
Information: It has identical dimension including dates and levels as the Operating Level Storage 2 Table. This table will be populated at beginning of run. The Operating Level 2 Table will be its “source” slot.
I/O: Output only
Method Details:
This method category will be dependent on the selection of the Conservation and Flood Pools or Conservation Pool method in the Operating Levels method category.
At the beginning of the run, the Operating Level Storage 2 Table will be populated by looking up the elevation values in the Operating Level 2 Table on the Elevation Volume Table to get the storage associated with each level. Next the Conservation Pool Storage Fraction 2 and Flood Pool Storage Fraction 2 slots will be populated as follows:
For each date (row) and each level, n, (column), the equation to compute the fraction:
Note:  The Conservation Pool Storage Fraction 2 is limited to be always between 0 and 1 (0% to 100%).
For each date (row) and each level, n, (column), the equation to compute the fraction:
Note:  The Flood Pool Storage Fraction 2 is not limited to be between 0 and 1 (0% to 100%). For levels above the flood pool, the percentage will be greater than 100%.
Then, at the beginning of each timestep, the Sum Inflows over Interval method will check to see if the controller is on the “Trigger DateTime”. If so, the Inflow Sum slot will be summed (as a volume) over the criteria interval. If the sum is equal to or greater than the Operating Level 2 Trigger Volume, the reservoir will use the Operating Level 2 Table and Operating Level Storage 2 Table in all computations (until reset).
If the current timestep is a “Reset DateTime”, then the reservoir will again use the original Operating Level Table(s).
If the current timestep is neither a “Trigger DateTime” or a “Reset DateTime”, then the reservoir will reference the table used on the previous timestep. That is, it will not modify the table used but continue to use whichever table is in effect.
 
Revised: 06/03/2019