Software Version

HEC-HMS version 4.12 beta 5 was used to create this example. You can open the example project with HEC-HMS 4.12 beta 5 or a newer version.

Project Files

Download initial project files here:


The reservoir routing model requires information about the reservoir, such as the elevation-storage relationship, and information about physical structures, like spillways and other outlets. These regulating outlets are commonly simplified through use of a stage-storage-discharge relationship. Reservoir routing in HEC-HMS is based on a hydrologic routing method, which is concentrated on the concept of storage for the flood water.

In this tutorial you will add a reservoir element to a basin model and configure the reservoir element and develop storage-discharge relationships to use the Outflow Curve routing method. We will compare simulated and observed reservoir elevation to evaluate the performance of the calibrated outflow curve. Observed discharge from the reservoir has already been added to the project along with some additional data needed to configure the reservoir element and run a simulation. As mentioned in Introduction to Modeling Reservoir Operations with HEC-HMS, the HEC-HMS model for the watershed upstream of the reservoir has been calibrated to the simulation time window used for this tutorial. 

Regulated outlets

Regulated outlets controlled by gates are a common feature of flood control reservoirs. Varying gate settings mean that a single stage or storage value can be associated with different outflow magnitudes depending on operations on a given day. Many flood control dams are operated with consideration to downstream constraints and “rate of release” constraints. Consequently, it can be challenging to construct a simple stage-discharge relationship for outlet works. To more simply model gate operations in HEC-HMS, the modeler can rely on historic data to fit a relationship to a distribution of stage and accompanying discharges.

  1. Plot several years of observed daily or hourly stage versus regulated discharge to see if there is a distinguishable trend. In this example we'll use hourly stage and regulated outflow for Lake Schafer Dam and Reservoir from 1989 to 2023 downloaded from the CDEC. This has already been downloaded and placed into the Excel workbook named OutflowCurve_Data_Initial.xlsx. The plotted data show no observable trend, so additional processing in Excel will be needed.

2. Data should be sorted by elevation from lowest to highest stage. This step has been completed and the data has been filtered for zeros, no data values and erroneous observations. Some QC of the raw outflow and stage data of your dataset will likely be necessary. Next, average the outflow over 5 FT bands using the AVERAGEIFS function in Excel. Input the AVERAGEIFS function (as shown in the figure below) into cells H2:H19

3. (This step has been completed and the plot will be populated automatically after Step 3). Next, the average discharge over the five foot bands are plotted against a representative stage (taken as the center of the elevation band). Create a plot with G2:G19 as your independent variable on the x-axis and H2:H19 as the dependent variable on the y-axis. In the figure below, a clear trend is visible and a trendline and equation can be fit to the relationship and a full table of outlet releases can be computed. Right click on the data and select Add Trendline... to the data, select Polynomial under Trendline Options add check Display Equation on chart.

4. Input the coefficients of your polynomial function into cells K2:K4 in the format ax2 +bx + c. The first few cells have been filled in in column M to ensure there are no negative values and the discharge values are monotonically increasing with elevation. This equation will now populate the Stage-Outlet Works Discharge shown in Table 1. Your values may vary slightly based on the precision of your coefficients.

Table 1. Computed stage and outlet works discharge relationship.

Stage, FTOutlet Works, CFS
652.5 (Spillway Crest)652
691.5 (Top of Dam)1,505

Spillway Outflow

Uncontrolled spillway flow may be provided in the Water Control Manual for the dam in the form of a table or a plotted rating curve. If the rating curve is not available in a table form, there are web-based digitizer tools that can convert the curve from the plot to a table of values. 

In the case of Success Dam, the full-range of spillway discharges are estimated according to the weir equation, Q = CLH^\frac{3}{2}. Where C is the coefficient of discharge, L is the length of the spillway measured perpendicular to the direction of flow, and H is the relative height of water above the spillway invert. The coefficient of discharge is assumed to be 3.0, the length of the spillway is 200 feet and the spillway invert is 652.5 FT. These values have been computed on the Spillway tab of the Excel workbook.

Table 2. Computed stage and spillway discharge relationship.

Stage, FT

Spillway Flow, CFS

 (C= 3.0)


Calibrating Weir Coefficient to Extrapolate

A weir equation should be used to extrapolate beyond the top of dam in lieu of linear extrapolation when possible. Spillway rating curves published in water control documents may not provide the weir equation or coefficient used to derive the values, in that case a simple calibration can be performed on the weir coefficient of discharge, C. Below, a range of C values were used to develop rating curves that were compared against the published rating curve for a different example dam. Because we're interested in high elevations, visually examine the behavior of the WCM rating curve at or near top of the dam. At the top of dam elevation in the example below, the WCM rating curve (black dashed line) is beginning to align more with a C value of 3.0. The final spillway rating curve for HMS routing should use published values below top of dam and be extrapolated beyond the top of dam with C= 3.0. 

Dam Overtopping

To account for extreme events that may exceed the storage capacity of the dam, it's important that the stage discharge relationship is extended beyond the top of the dam. Rating curves for outlet works and spillways should be extrapolated beyond top of dam by three to five feet. Additionally, flow over the top of the dam must be estimated. The minimum measured crest elevation should be used as the invert of the dam top for the weir equation. The length of the dam top is 3,490 feet and the coefficient of discharge is assumed to be 3.0, and the minimum dam crest elevation is 691.5 FT. These values have been computed on the Dam Top tab of the Excel workbook.

Table 3. Computed stage and dam top discharge relationship.

Stage, FTDam OT Flow, CFS

Routing in HEC-HMS with Outflow Curve

All sources of outflow from the dam must be combined into a single curve to use the Outflow Curve method in HEC-HMS. The last column will be used for the discharge values in the Storage-Discharge table created in HEC-HMS.

Table 3. Computed stage and total discharge relationship for Schafer Dam.

Stage, FTStorage, AC-FTOutlet Works, CFSSpillway, CFSDam OT, CFSTotal Outflow, CFS
652.5 (Spillway Crest)82,8866520.00.0652
691.5 (Top of Dam)227,2221,505146,1330147,638
  1.  Open the HMS project ReservoirExample.hms. In the TuleRiver basin model, add a reservoir element to the project, named Schafer_Dam. Connect the ReservoirInflow junction to the new reservoir element. 
  2. Create a new Storage-Discharge table with the Paired Data Manager and name it Store-Discharge. Copy in the storage and total outflow values from Combined Curve tab of the Excel sheet in the appropriate columns in HMS.
  3. Expand the basin model and Select the Schafer_Dam element. Edit the Reservoir Component Editor to use Outflow Curves as the routing method. 
  4. Set the Storage Method to Elevation-Storage-Area-Discharge. Set each of the paired functions as shown below. Storage-Discharge should be the primary curve and the Initial Condition should be set to elevation 585.0 FT.

      5. Open the Options tab for the Schafer_Dam reservoir element. As shown below, choose the Reservoir_Outflow gage for Observed Outflow and the Reservoir_Elevation gage for Observed Pool Elevation

      6. Run the simulation WY2017-2018-Outflow Curve and view the results graph of the Schafer Dam reservoir element.

Results Discussion

Examine the model performance of reservoir routing against the observed reservoir elevation using the outflow curve routing method. Next, refer to the results of the Rule-Based Option for an HEC-HMS Reservoir Element and compare model performance between the two routing methods.

The model performance with respect to reservoir elevation/storage is better when the reservoir is routed with rule-based operations (top) as compared to outflow curve routing (bottom). Complex rules and operating guidelines are not easily captured in a single outflow curve and for most daily operations and routing of non-extreme events outlet works operations are crucial for accurately modeling outflow.


  1. When might a single outflow curve would be a more appropriate routing method?

The Outflow Curve routing method is ideal when a reservoir doesn't have a complex release schedule or when modeling large inflow events during which the discharge through is negligible in comparison with total discharge from the dam. In the case of Success Dam, when the pool is near the top of dam, the estimated releases from the outlet works account for around 1% of total outflow. This routing method would be well suited for modeling a Probable Maximum Flood through a reservoir.

Project Files

Download the final project files here: