skip to main content
Surcharge
The surcharge policy determines the mandatory release that must be made to protect the reservoir.
Model Setup
On each reservoir, select the desired surcharge method from the Surcharge Release Category. The multi-object method selector can be used to make this selection on all reservoir objects at once.
Typically in USACE‑SWD models the Flat Top Surcharge method is used and will be used as an example here. Once this method is made active, several slots will be added that require user input. The Rating Curves table contains the induced surcharge and free flow rating curves. The Operating Level Table contains the pool elevation vs. operating level information for each operating level. The body of this periodic slot contains the pool elevations and the column headers represent the balance levels. So there must be a column for each operating level and the pool elevations within that column may vary with time. Input a value in the Top of Flood Pool and Top of Conservation Pool slots. These values represents the operating level (not elevation) associated with the top of flood pool and top of conservation pool, respectively. They must be the same on all reservoir objects. The user can set these values on all objects at once using the computational subbasin (the computational subbasin is discussed below).
See Flat Top Surcharge in Objects and Methods for details on the Flat Top Surcharge method. See Surcharge Release in Objects and Methods for details on other Surcharge Release category methods.
If using the Flat Top Surcharge method, consider also selecting the Constant Additional Surcharge Release method in the Elevation Max Duration Constraints category; see Constant Additional Surcharge Release in Objects and Methods for details. This method compute the constant additional surcharge release to meet one or more maximum elevation duration constraints.
RPL Implementation
Since the surcharge release rules must execute first, they should be the lowest priority rules. Furthermore, the surcharge release rules must execute in an upstream to downstream order. Therefore the surcharge release rules for the most upstream reservoirs must be the lowest priority rules. Its important to remember that the lowest priority rules are the rules with the highest numbers. Conversely, rule 1 is the highest priority rule and will execute last when the agenda order is ...,3,2,1.
The surcharge release rules should be contained in their own policy group for easy organizing. Add a policy group by selecting Ruleset, then Add Policy Group in the main Ruleset Editor dialog and then name the policy group accordingly. Rules can be added to this policy group by selecting Ruleset, then Add Rule with the policy group highlighted. Add a rule for each reservoir in the basin. The rules are edited by expanding the policy group view and then double-clicking the red “R” icon next to one of the rules. This invokes the Rule Editor dialog. Each rule should be renamed accordingly. In the Rule Editor dialog, add an assignment by selecting Rule, then Add Assignment. Then, use the palette to build the rule.
Each rule should set the outflow slot of the reservoir to the surcharge release flag. This will trigger the reservoir to solve for its surcharge release forecast and set its outflows (for each timestep in the forecast period) equal to the computed surcharge releases. Since the downstream reservoirs need to know the surcharge release forecasts from the upstream reservoirs before they can solve for their surcharge releases, the rules must be ordered to execute in an upstream to downstream direction. If a reservoir receives releases from more than one upstream river branch, then each upstream branch must solve first. An example rule for one reservoir is shown in Figure 3.2. The end result will be a series of rules that set the outflow slot on each reservoir to the surcharge release flag. The rules will execute from lowest priority to highest priority (from the upstream reservoirs to the downstream reservoirs).
Figure 3.2  Sample surcharge rule
Description of Logic
See Flat Top Surcharge in Objects and Methods for a complete description of the logic used in the Flat Top Surcharge computations.
The interaction between the rule and object dispatching is as follows.
1. When the surcharge rule executes, it sets the surcharge release flag on the reservoir outflow slot.
2. This triggers the object to dispatch at the current timestep (Solve given Inflow Outflow) and solve for its surcharge release forecast.
3. Within this dispatch, it sets the Surcharge Release slot and also sets the surcharge release flag (and physical constraint flag) on the outflow slot at each subsequent timestep in the forecast period. This causes the object to be put on the queue at each of those timesteps.
4. When the reservoir dispatches at each timestep in the forecast period (t), it recognizes that the controller timestep and the object timestep are not the same, and it does not recompute the forecast of surcharge values. Instead it sets the Outflow (@t) equal to the Surcharge Release (@t) that was previously computed.
5. Once the outflow slot is set, the value is then routed downstream to the next reservoir.
6. Then the next rule will execute, triggering another reservoir to solve for its surcharge releases and route downstream.
7. This continues until all rules have executed and all reservoirs have computed their surcharge release forecasts
Revised: 07/09/2023