Muskingum Routing with Reservoir Elements


Implementation of Muskingum Hydrologic Routing Using Reservoir Elements


The Muskingum method is a commonly used hydrologic routing method in situations requiring a variable storage-discharge relationship (Chow et al., 1988). The Muskingum method models the storage volume of flooding in a river channel using a combination of wedge and prism storage. The key parameters in Muskingum routing are K (travel time) and X (weighting coefficient).

An important item to note is that the Muskingum method provides a hydrologic routing method which means it solves for the change in storage over time (the continuity ODE) using a forward in time differencing method. This is the same solution as provided by the Reservoir element in GoldSim. Reservoir elements are used to represent routing reaches in this implementation. 

In terms of Muskingum method specifics, the value of X depends on the shape of the wedge storage to be modeled, and the value of X ranges from 0 for reservoir-type storage to 0.5 for a full wedge. In natural streams, X is between 0 and 0.3 with a mean value near 0.2 (Chow et al., 1988). K is the time required for an incremental flood wave to traverse its reach, and it may be estimated as the observed time of travel of peak flow through the reach (Chow et al., 1988). If observed inflow and outflow hydrographs are available for a river reach the values of K and X can be determined to provide the best fit (or narrowest loop) relative to the observed flows (Veissman and Lewis, 2003).

The Muskingum method assumes that water surface in the reach is a uniform unbroken surface profile between upstream and downstream ends of the section. It also assumes that K and X are constant through the range of flows (Veissmann and Lewis, 2003). The Muskingum parameters (K and X) are best derived from stream flow measurements and are not easily related to channel characteristics.

This example model provides a Muskingum Hydrologic Routing implementation in GoldSim. In the derivation of K and X and in the use of the method, a fixed routing time step (Δt) is used. GoldSim is a dynamic simulation program and may change the model time step during the simulation. To allow GoldSim to dynamically change the time step and yet still provide a Muskingum routing implementation, the routing time step ("Routing_Step") is set by the user and fixed for the simulation. The discrete change push functionality built into GoldSim is used to maintain the calculated Muskingum routing values for the routing time step even when GoldSim is using a different simulation time step length.

A two routing reach formulation is presented similar to that provided by Hosseini (2004). These two reaches represent a single reach (i.e. between two gages) which has been split into two segments. Two reaches could also be represented where it is two separate reaches (2 gage bounded segments) and then different K and X values and routing step values could be used for each reach. Verification for these calculations is also included via the use of verification submodels ("Verification_A" and "Verification_B"). Each verification submodel provides an additional implementation verification to published results.


Chow, V.T., Maidment, D.R., and Mays, L.W. (1988). Applied Hydrology. Tata McGraw-Hill Education (reprint edition). 572 pages.

Hosseini, S.M. (2004). "Multiple-reach Muskingum Flood Routing Using Spreadsheet", Proceedings of the 1st Internation Conference on Managing Rivers in the 21st Centry: Issues & Challenges. pp. 591-597.

Veissman, W. and Lewis, G.L. (2003). Introduction to Hydrology. 5th Ed. Prentice Hall: Upper Saddle River, NJ. 612 p.

Additional Information


Hydrologic routing, Muskingum method, discrete change push


GoldSim Applications, Water Management, Hydrology, Reservoir Operations & Planning

Experience Level

GoldSim Technology Group


Making Better Decisions In An Uncertain World