skip to main content
Surcharge Release
Surcharge releases methods determine releases made during the forecast period. The releases are considered mandatory, due to the volume of water in the reservoir. These methods are executed only from the Solve given Inflow, Outflow dispatch method when the Outflow slot is set with the surcharge release (S) flag. This flag can only be set by a rule.
Note:  Except for the None method, most of the surcharge release methods use operating level slots. Many of these are described in the Operating Levels category.
* None
This is the default method. Nothing is done.
* Flat Top Surcharge
This method follows the procedure used by the computer program SUPER and the US Army Corps of Engineers Southwest District; see Surcharge in USACE‑SWD Modeling Techniques for details.
Slots Specific to This Method
 Operating Level Table
Type: Periodic
Units: Time vs Length at Operating Levels
Description: table of describing the seasonal variation of elevation (storage) 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. See Conditional Operating Levels for a method to modify which operating level table is used within a run.
I/O: Required input
 Operating Level Storage Table
Type: Periodic
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
 Forecast period
Type: Scalar
Units: No units
Description: number of timesteps in the forecast period.
Information: number of timesteps over which Inflows are forecast and flood control releases (including surcharge releases) are calculated; includes current timestep.
I/O: Required input
 Top of Conservation Pool
Type: Scalar
Units: No units
Description: Operating level (as defined in Operating Level Table) corresponding to the top of the conservation pool.
Information: COE-SWD has used 5 (default) in the past, but can be any number.
I/O: Required input
 Rating Curves
Type: Table
Units: Storage vs Flow (Induced Surcharge) vs Flow (Free-Flow)
Description: two curves representing the induced surcharge (minimum) and free-flow (maximum) that can be released based on elevation in the reservoir. The intersection of the two curves must be defined (there must be a row where the values in the middle and third column are equal) and the points of the free-flow curve beyond the end of the induced surcharge curve must be input in the table column for the induced surcharge curve.
I/O: Required input unless the Specify Rating Curves using Elevation method is selected; see Specify Rating Curves using Elevation.
 Surcharge Release
Type: Series
Units: Flow
Description: release required by operating when the reservoir elevation is in the surcharge pool.
Information: set by surcharge release method for all timesteps in forecast period
I/O: Output
 Minimum Mandatory Release
Type: Series
Units: Flow
Description: minimum surcharge release that can be achieved within the timestep following the induced surcharge curve
Information: calculated for each timestep in the forecast period, but the slot is set only for the current timestep.
I/O: Output only
 Maximum Mandatory Release
Type: Series
Units: Flow
Description: maximum surcharge release that can be achieved within the timestep following the free-flow rating curve
Information: calculated for each timestep in the forecast period, but the slot is set only for the current timestep.
I/O: Output only
Method Details 
This method is based on the methodology developed by the US Army Corps of Engineers, Southwest Division. In this method, the surcharge, or mandatory, releases, as well as minimum and maximum mandatory releases, are determined for a number of timesteps called the forecast period that will prevent overtopping of a reservoir. These releases are determined for each timestep in the Run Control Dialog.
The name of this method comes from the process of selecting releases during the forecast period to minimize future releases. In other words, release a little more today to reduce, or flatten out, future releases. This approach aims to prevent excessively large inflows from creating equally large releases by extending the time period over which these inflows are released.
This method is used by the dispatch method, Solve given Inflow, Outflow, whenever the surcharge release flag (S) is set on the Outflow slot (this flag can only be set by a rule). When inflows, which includes the sum of upstream inflows and hydrologic inflows, are known, and the rule sets the flag for the current controller timestep, the surcharge method is launched and surcharge releases and minimum and maximum mandatory releases are calculated for each timestep in the forecast period for the current controller timestep. This process progresses through each timestep on the Run Control Dialog.
The user should be aware of the distinction between the controller timestep, or timesteps set in the Run Control Dialog, and forecast timesteps. Once the surcharge method is invoked, surcharge calculations are performed for the forecast timesteps. The controller timestep does not advance, even though the Surcharge Release slot receives output from the method. Outputs in this slot are overwritten during the next controller timestep, except for the first.
The calculation of the surcharge releases for the forecast period is accomplished by using a loop structure once the surcharge method is invoked by the dispatch method mentioned above. Calculations for each timestep in the forecast period are exactly the same except for changes in the starting storage volume and inflows. The following sections provide a detailed description of the process that is used to calculate the surcharge release and minimum and maximum mandatory releases within.each loop. There are three main sections: Calculations of the minimum and maximum mandatory releases, which bound the surcharge release, and the calculation of the surcharge release.
The first step is to determine the forecast storage. This volume is the initial storage (that is, storage at end of previous computational timestep if this is the first time through the loop, or the storage at the end of the previous forecast timestep for all subsequent loops) plus the total inflow minus any surcharge releases for all forecast timesteps prior to the current forecast timestep. The total inflow is the sum of the upstream inflows plus hydrologic inflows for the current forecast period. For the first forecast timestep, the forecast storage is simply the storage in the reservoir on the previous controller timestep. On subsequent forecast timesteps, the forecast storage includes total inflows through the current forecast timestep and surcharge releases through the previous forecast timestep.
A table interpolation of the Elevation Volume Table is then done to determine the forecast elevation. If the forecast elevation is less than the lowest capacity value input in the induced surcharge curve, which is the middle column on the Rating Curves slot, the minimum mandatory release is zero and the program progresses to determine the maximum mandatory release. Otherwise it continues to determine the minimum mandatory release.
Calculation of the Minimum Mandatory Release 
If the forecast elevation falls between the highest and lowest capacity (or elevation) values on the induced surcharge curve, the program determines a discharge rate corresponding to the forecast elevation by interpolation of capacity values from the induced surcharge curve. This is the minimum that can be released based on the forecast elevation. If the forecast elevation is greater than the highest capacity value, the curve must be extended; that is, there is no extrapolation of the curve. In a similar fashion, the total inflow is used in an interpolation of the induced surcharge curve to determine a corresponding elevation. If this elevation corresponding to the total inflow is less than the minimum discharge rate based on the forecast elevation, the pool is falling. For the opposite case, the pool is rising. If the total inflow and the minimum release corresponding to the forecast elevation are equal, the minimum release is set to this discharge rate and the program goes on to determine the maximum release.
Falling Pool 
If the pool is falling (the forecast inflow is less than minimum discharge corresponding to the forecast elevation), the program uses a specific portion of the induced surcharge curve to determine the minimum mandatory release. The set of points includes all points between and including the point on the curve corresponding to the total inflow for the current forecast timestep to the minimum discharge based on the forecast elevation. Using this portion of the induced surcharge curve, the program calculates how long it will take the reservoir to move from the forecast elevation to an elevation corresponding to the total inflow or how much volume can be discharged within one timestep, whichever is less. In the case of a falling pool, the process involves moving down the curve. For the opposite case (rising pool), the process will be reversed, moving up the curve since the discharge rate corresponding to the forecast elevation is less that the total inflow. In either case, the program begins at the curve point corresponding to the forecast storage and progresses to that point corresponding to the total inflow.
The process of progressing through the curve point is as follows.
1. First, the average of the discharge rates corresponding to the first two (or highest) curve points is found.
2. Then the time it would take to release a certain volume at some discharge rate is determined. This volume is the difference in storage values from the curve points that correspond to the two discharges used to calculate the average discharge rate. The time is calculated as follows:
    
where Storage(i) and Storage(i-1) are the storage values corresponding to the two discharge values (the difference is the volume that is being released). The value of Forecast Inflow - Average Discharge represents the net discharge.
If this time is less than one timestep’s time, the program stores the time and the total volume that could be released in this time at the average discharge, which equal Time * Average Discharge.
3. The program then moves to the next two curve points, gets another average discharge rate corresponding to these two curve points and again determines the time it would take to drop from one capacity value to the next at the net discharge rate.
4. This new time plus the time for the previous two curve points is now the new total time and is again checked to see if it is greater than one timestep. If less still less than one timestep, the total time and total volume are stored (replacing the previous values) and the program moves to the next two curve points.
5. This process continues until either the point corresponding to the total inflow is reached or the total time has reached or exceeded one timestep, whichever occurs first.
6. If the total time at this point is exactly equal to one timestep, the calculations are done and the minimum mandatory release equals the total volume divided by the time of one timestep. If the total time is greater than one timestep’s time, the total time from the previous iteration is used to see how much time was left before reaching a total time of one timestep.
7. Given the average discharge rate for the current iteration, the volume that could be released within the time remaining is determined.
8. This volume is then added to the total volume and the final minimum mandatory discharge rate is calculated as described above.
9. If the computation gets through all the curve points; that is, the curve point corresponding to the total inflow, with a total time that is less than or equal to one timestep, the total volume is increased by adding to the previously stored total volume to (Time of 1 timestep - total time) * total inflow.
10. Then, the minimum mandatory release is calculated by dividing the total volume by the time of one timestep.
 
Example 18.1  Example of minimum mandatory release w/ falling pool 
Figure 18.4 is a plot of the induced surcharge curve. Assume that the timestep is a day, there is a falling pool, the total inflow for the current forecast timestep = 80,000 cfs, and the minimum release that the reservoir can make corresponding to the forecast storage of 450,000 ac-ft. = 365,000 cfs. Therefore, the portion of the curve that is used to determine the minimum mandatory release is bracketed by these two discharge points (donuts on plot), and the three actual curve points between these.
First, the average discharge rate of 365,000 and 260,000 cfs = 312,500 cfs is determined.
hen the volume between the two storage values corresponding to these two discharge points (450,0000 - 445,000 = 5,000 ac-ft = 217,800,000 cu. ft.) is calculated.
Then, the time it takes the reservoir to release this volume of water at the calculated average discharge rate (217,800,000cu.ft./312,500 cfs = 0.26 hours) is determined. Since this time is less than 24 hours (one timestep), the total time of 0.26 hours and the total volume = 0.26*312,500 = 5,000 ac-ft is stored and the next two discharge points are used.
Using these two points (260,000 and 180,000), the average discharge rate = 220,000 cfs, the volume between storage values corresponding to these two discharges = 445,000 - 440,000 = 5,000 ac-ft, and the time to release that volume at the net discharge rate = 0.43 hours. This total time = 0.69 is still less than 24 hours, so the program moves to the next two points (180,000 and 95,000) after storing the total volume, which = 10,000 ac-ft.
The average discharge for the next two points is 137,500 cfs and the storage volume between these points is 440,000 - 430,000 = 10,000 ac-ft. The time to release this volume at the net discharge rate is 2.10 hours, so the total time is now 2.79 hours, which is still less than 24 hours. The total volume that is stored now = 20,000 ac-ft). The final two discharge points are 95,000 and 80,000 cfs, with an average of 87,500 cfs. The volume between these points is 5,000 ac-ft (430,000 - 425,000 ac-ft). The time to release this volume is 8.07 hours, the total time is 10.86 hours, and the total volume = 25,000 ac-ft). Although still less than 24 hours, all of the specific points of the curve have been used.
The final total volume is the sum of the previous total of 25,000 ac-ft + (24hrs - 10.86)*total inflow. The minimum mandatory release is this new total volume divided by 24 hours.
 
Figure 18.4   
Rising Pool 
If the pool is rising (total inflow greater than discharge corresponding to the forecast storage), the calculation is the same as for the case of a falling pool except that the progression through the curve point will be up the curve instead of down the curve. The lowest point is the minimum discharge that must be released corresponding to the forecast storage and the highest point is the total inflow for the current forecast day.
Calculation of the Maximum Mandatory Release 
The maximum release is determined in the same manner as the minimum release except that the free-flow rating curve is used instead of the induced surcharge curve. The program again determines if the pool is be rising or falling, then progressed through the specific curve points to calculate the maximum mandatory release.
Calculate Surcharge Releases 
Once the maximum and minimum mandatory releases have been determined, the program computes surcharge release to flat top the incoming flood. The objective is to have slightly higher mandatory releases sooner than later to try to reduce the surcharge releases that would need to be made later as inflows continue to come into the reservoir. The program looks ahead in the forecast period to anticipate high flows with higher releases in order to reduce the maximum release needed in the future to keep the pool at or below the induced surcharge curve until such time as the top of the induced surcharge curve is reached.
Bracket Mandatory Release on Induced Surcharge Curve 
To determine the mandatory release, the program steps through the points on the induced surcharge curve to determine what the surcharge release must be in order to reduce the maximum release at some time in the future when the reservoir is expected to be the fullest.
First, the available storage is calculated as the difference between the forecast storage and the storage at the first induced surcharge point. Then, the highest storage in the reservoir over the remainder of the forecast period is calculated using the remaining inflow hydrograph and a constant release equal to the discharge rate corresponding to the currently considered point on the induced surcharge curve. If the highest storage is greater than the storage available, the program continues to the next point on the induced surcharge curve and recalculates the available storage and the highest forecast storage; again using the remaining inflow hydrograph and the release associated with that point. Moving to each new curve point effectively increases the release, there by reducing the maximum storage required and increasing the available storage. This process of checking each of the points on the induced surcharge curve continues until the highest forecast storage is less than the available storage.
Before moving to another point on the curve, the program stores the available storage, the highest forecast storage, and the discharge rate to be used for future interpolation.
If the final, or highest, curve point is reached and the available storage is still less than the highest forecast storage, the program execution is terminated and a request is made for extending the curve.
Once a curve point is found that satisfies the condition that the highest forecast storage is less than the available storage, the program is considered to have found the general vicinity of the appropriate value of the surcharge release, or in other words bracketed the portion of the curve. At this time, there are two pairs of stored values for each of the following parameters: available storage, the highest forecast storage, and the discharge rate.
Use Forecast Inflows to Zoom In on Solution 
Having bracketed the part of the induced surcharge curve that contains the appropriate surcharge release, it is now necessary to find the point in that range for which the available storage is just equal to the highest forecast storage. This part of the program uses inflow values from the forecasted inflow array as intermediate discharge test points. The purpose of looking through the forecasted inflows narrows the solution for the right surcharge release.
The program scans through the forecast period to see if any inflows fall between the two discharge values that have been stored. If any fall in there, the smallest is stored. Then, this inflow value is used similarly to how the discharge values from the various curve points were used above to determine the available storage and highest forecast storage if the inflow is assumed to be the release. This is followed by a check to see if the available storage is less than the highest forecast storage. If so, the program looks to see if another higher inflow within the forecast period can satisfy the condition and, if found, available storage and highest forecast storage is recalculated. However, at the next point, the lower limit within which the inflow must fit above is raised to the inflow value that was used previously. If no inflow is large enough to make the available storage larger than the required storage, continue on with the two discharge values from the curve that were stored after the solution was initially bracketed.
If there are no inflows within the forecast period that fall in the range of the two discharge points on the curve or if no inflow values during the forecast period are large enough to make the available storage large enough to exceed the highest forecast storage, the algorithms goes to the next section where an interpolation is used to find the surcharge release for the current forecast day using points off the curve.
Interpolate to Find Surcharge Release for Current Forecast Day 
The induced surcharge curve has been bracketed by two points. At the higher point on the curve, the discharge satisfies the condition that the available storage >= highest forecast storage. At the lower point, the condition is not satisfied. (The discharge values may be specified input points from the induced surcharge curve, or may be points found as described in the previous section from the forecasted inflow array.) Once the condition of available space being larger than or equal to the required storage is satisfied, the extra available storage is calculated for the set of points that satisfied the condition (available storage - highest forecast storage) and the extra volume needed to store the highest forecast storage for the set of points that didn’t satisfy the condition (highest forecast storage - available storage). Finally, using the extra space, extra storage needed, and the two discharge points, an interpolation is done to find the surcharge release for the current forecast day. The resulting surcharge release value is that which would very closely match the available storage and highest forecast storage, given that release rate.
Compare Surcharge Release With Maximum and Minimum Release Values 
Once the surcharge release is determined, it is compared to the maximum and minimum mandatory releases calculated earlier. If the surcharge release is greater than or less than these limits, respectively, it is set to the limit. In addition, the storage of the reservoir is reduced to reflect the surcharge release for the current forecast timestep. This storage for the current forecast timestep is used as the initial storage for the calculation of forecast storage on the next timestep in the forecast period.
Check Surcharge Release Against Conservation Pool 
The final section in this method involves a check to see of the surcharge release results in a pool level below top of conservation pool. The reservoir storage with the surcharge release already made through current forecast day is checked to see if it is above or below the conservation pool. If below, the surcharge release is set to that which would bring the storage down to the conservation pool. If the storage is already below the conservation pool before this release is made, the surcharge release for the current forecast timestep is zero. If above the conservation pool, the surcharge release is left as is.
The program then moves to the next forecast day. After the surcharge releases and minimum and maximum mandatory releases have been determined for every timestep in the forecast period, the calculations are complete.
Finally, the method selected in the Elevation Max Duration Constraints category (see Elevation Max Duration Constraints) is executed. This may increase the Surcharge Release to avoid the reservoir from exceeding a desired elevation for more than the desired number of timesteps.
* Induced Surcharge Curve
This method follows the procedure used by the US Army Corps of Engineers Kansas City office to determine surcharge releases during a forecast period for reservoirs with taunter gates.
Slots Specific to This Method
 Operating Level Table
Type: Periodic
Units: Time vs Length at Operating Levels
Description: table of describing the seasonal variation of elevation (storage) 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. See Conditional Operating Levels for a method to modify which operating level table is used within a run.
I/O: Required input
 Operating Level Storage Table
Type: Periodic
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
 Operating Level
Type: Series
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
 Forecast period
Type: Scalar
Units: No units
Description: number of timesteps in the forecast period.
Information: number of timesteps over which Inflows are forecast and flood control releases (including surcharge releases) are calculated; includes current timestep.
I/O: Required input
 Top of Flood Pool
Type: Scalar
Units: No units
Description: Operating level (as defined in Operating Level Table) corresponding to the top of flood pool.
I/O: Required input
 Top of Conservation Pool
Type: Scalar
Units: No units
Description: Operating level (as defined in Operating Level Table) corresponding to the top of the conservation pool.
I/O: Required input
 Induced Surcharge Curve
Type: Table
Units: Flow (Inflow) vs Length (Elevation) vs Flow (Surcharge Release)
Description: family of curves that relate elevation and surcharge release for various inflow values.
I/O: Required input
 Surcharge Release
Type: Series
Units: Flow
Description: release required by operating when the reservoir elevation is in the surcharge pool.
Information: set by surcharge release method for all timesteps in forecast period
I/O: Output
 Recession Target
Type: Series
Units: Length
Description: pool elevation at which surcharge operations are suspended.
Information: once pool drops to this elevation, Surcharge Release operations will terminate.
I/O: Optional, can be input, or will default to the elevation of the bottom of surcharge pool (top of flood pool).
 Gate Opening Curve
Type: Table
Units: Length (Elevation) vs Flow vs length(Gate Opening).
Description: This is a family of curves of that relate pool elevation and discharge for various gate openings. This must be specified as a 3‑D table; see Three-dimensional Table Interpolation for details.
I/O: Required input
 Gate Opening
Type: Series
Units: No units
Description: gate opening calculated for each timestep.
I/O: Output
 Storage Tolerance
Type: Scalar
Units: Volume
Description: allowable difference between calculated average storage and beginning of timestep storage.
Information:  
I/O: Required input
This method determines a surcharge release for each timestep in the forecast period. The process begins by determining a Surcharge Release value from the Induced Surcharge Curve, given Inflow (net) and current Pool Elevation (end of previous timestep for the first iteration). Given the Surcharge Release value, the Gate Opening is determined by interpolation of the Gate Opening Table. The Gate Opening is not allowed to be reduced if the reservoir is in surcharge operations (Surcharge Release > 0). If the Gate Opening from the Curve is less that the current Gate Opening, the current Gate Opening is maintained, but a new Surcharge Release is determined given that gate opening by interpolation of the Gate Opening Curve. Otherwise, the Surcharge Release from the Induced Surcharge Curve is used.
The reservoir is then mass balanced using the Inflow (net) and Surcharge Release to determine the end of period Storage. If the Surcharge Release drops the reservoir below the Recession Target, a new Surcharge Release is determined that would drop the reservoir to exactly the Recession Target and the mass balance would resolve for the end of period Storage. Then an average Storage is determined using the beginning and ending period Storages. If the difference between the current storage and the new average storage is greater than the Storage Tolerance, the process is repeated using the new average storage to compute the new current pool elevation and a new Surcharge Release. Otherwise, the method moves on to the next forecast timestep.
* Pass Inflows
This method is designed to pass the inflows to the reservoir whenever the pool elevation enters the surcharge pool. If the inflows cannot be passed (due to the physical limitations of the outlet works) the surcharge release is set equal to the max outflow. Then the gates remain open until the surcharge pool is evacuated.
Slots Specific to This Method
 Operating Level Table
Type: Periodic
Units: Time vs Length at Operating Levels
Description: table of describing the seasonal variation of elevation (storage) 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. See Conditional Operating Levels for a method to modify which operating level table is used within a run.
I/O: Required input
 Operating Level Storage Table
Type: Periodic
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
 Operating Level
Type: Series
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
 Forecast period
Type: Scalar
Units: No units
Description: number of timesteps in the forecast period.
Information: number of timesteps over which inflows are forecasted and surcharge releases are calculated; includes current timestep.
I/O: Required input
 Top of Flood Pool
Type: Scalar
Units: No units
Description: Operating level (as defined in Operating Level Table) corresponding to the top of flood pool.
I/O: Required input
 Top of Conservation Pool
Type: Scalar
Units: No units
Description: Operating level (as defined in Operating Level Table) corresponding to the top of the conservation pool.
I/O: Required input
 Surcharge Release
Type: Series
Units: Flow
Description: the computed surcharge release
Information: set by surcharge release method for all timesteps in forecast period
I/O: Output
Method Details 
This method is executed for every timestep in the forecast period when the surcharge release flag is set on the Outflow slot. The surcharge release is set equal to the total inflow to the reservoir (Inflow plus Hydrologic Inflow Forecast) if the pool elevation will exceed the top of the flood pool. If the inflow cannot be passed due to outlet constraints, the surcharge release is set equal to the maximum outflow. If this happens, the gates remain fully open and the surcharge release is set equal to the max outflow until the surcharge pool is evacuated. If the computed surcharge release will bring the pool elevation below the top of the flood pool, it will be reset to bring the pool elevation exactly to the top of the flood pool.
* Specified Surcharge
This method is used to compute the surcharge release based on a user specified value. As always, the surcharge release is limited to the physical maximum outflow from the reservoir.
Slots Specific to This Method
 Operating Level Table
Type: Periodic
Units: Time vs Length at Operating Levels
Description: table of describing the seasonal variation of elevation (storage) 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. See Conditional Operating Levels for a method to modify which operating level table is used within a run.
I/O: Required input
 Operating Level Storage Table
Type: Periodic
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
 Operating Level
Type: Series
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
 Forecast period
Type: Scalar
Units: No units
Description: number of timesteps in the forecast period.
Information: number of timesteps over which inflows are forecasted and surcharge releases are calculated; includes current timestep.
I/O: Required input
 Top of Flood Pool
Type: Scalar
Units: No units
Description: Operating level (as defined in Operating Level Table) corresponding to the top of flood pool.
I/O: Required input
 Top of Conservation Pool
Type: Scalar
Units: No units
Description: Operating level (as defined in Operating Level Table) corresponding to the top of the conservation pool.
I/O: Required input
 Surcharge Release
Type: Series
Units: Flow
Description: computed surcharge release
Information: Set by surcharge release method for all timesteps in forecast period
I/O: Output
 Specified Surcharge release
Type: Scalar Slot
Units: Flow
Description: The user input surcharge release
Information: This value is used to set the surcharge release slot whenever the pool elevation is in the surcharge pool but less than the Critical Elevation
I/O: Required input
 Critical Elevation
Type: Scalar Slot
Units: Length
Description: elevation at which the surcharge release changes from the Specified Surcharge Release to the maximum release
I/O: Required input
Method Details 
This method is executed for every timestep in the forecast period when the surcharge release flag is set on the Outflow slot. The surcharge release is set equal to the Specified Surcharge Release if the pool elevation will exceed the top of the flood pool. If the pool elevation will exceed the Critical Elevation, the surcharge release is set equal to the maximum outflow. If this happens, the gates remain fully open and the surcharge release is set equal to the max outflow until the surcharge pool is evacuated. If the computed surcharge release will bring the pool elevation below the top of the flood pool, it will be reset to bring the pool elevation exactly to the top of the flood pool.
Revised: 08/02/2021