Flow routing is a procedure to determine the time and magnitude of flow
at a point on a watercourse from known or assumed hydrographs at one or
more points upstream.
Muskngum method is a commonly used hydrologic routing method for handling a variable discharge-storage relationship.


| 6.1 | ROUTEMUSKINGUM | Muskingum Routing | ||||||
| Purpose: | ||||||||
| Performs hydrograph routing using Muskingum method. | ||||||||
| Calling Sequence: | ||||||||
| CALL RouteMuskingum (timeInterval, muskingumK, muskingumX, numberReaches, initialSubreachOutflow, finalSubreachOutflow, numberFlows, inflow, outflow, errorCode, errorMessage) | ||||||||
| Declarations: | ||||||||
| INTEGER | TIMEINTERVAL | |||||||
| DOUBLE PRECISION | MUSKINGUMK. MUSKINGUMX | |||||||
| INTEGER | NUMBERREACHES | |||||||
| DOUBLE PRECISION | INITIALSUBREACHOUTFLOW(NUMBERREACHES) | |||||||
| DOUBLE PRECISION | FINALSUBREACHOUTFLOW(NUMBERREACHES) | |||||||
| INTEGER | NUMBERFLOWS | |||||||
| DOUBLE PRECISION | INFLOW(NUMBERFLOWS), OUTFLOW(NUMBERFLOWS) | |||||||
| INTEGER*4 | ERRORCODE | |||||||
| CHARACTER | ERRORMESSAGE*80 | |||||||
| Augument Description: | ||||||||
| TIMEINTERVAL | (Input) | Time interval, minutes | ||||||
| MUSKINGUMK | (Input) | Muskingum K,
hours. muskingumK is divided by numberReaches to obtain travel time for each subreach. |
||||||
| MUSKINGUMX | (Input) | Muskingum x | ||||||
| NUMBERREACHES | (Input) | Number of routing
reaches. muskingumK is divided by this value and routing is repeated for each reach. |
||||||
| INITIALSUBREACHOUTFLOW | (Input) | Initial outflow for each subreach, m3/s | ||||||
| FINALSUBREACHOUTFLOW | (Output) | Final outflow for each subreach, m3/s. | ||||||
| NUMBERFLOWS | (Input) | Number ofhydrograph ordinates. | ||||||
| INFLOW | (Input) | Inflow hydrograph ordinates, m3/s. | ||||||
| OUTFLOW | (Output) | Routed hydrograph
ordinates, m3/s. |
||||||
| ERRORCODE | (Output) | Coded integer indicating error number, severity and subroutine name. See subroutine DecodeErroCode | ||||||
| ERRORMESSAGE | (Output) | Errormessage. See Remarks. | ||||||
| Remarks: | ||||||||
| Flows are routed using the formula Oi=(ca-cb)Ii-1+cbIi+(1-ca)Oi-1 where ca=2Δt/2K(1-x)+Δt, and Δt-2Kx/(2K(1-x)+Δt | ||||||||
| Initial outflow is required for each subreach. Initial inflow
for the first subreach in the fIrst hydrograph ordinate. Initial inflow for each subsequent subreach is the initial outflow from the subreach immediately upstream. |
||||||||
| For error codes 1 and 2, outflow is set to undefmedDbl. Muskingum routing is stable when 1/2(1-K)≤K/Δt≤1/2x |
||||||||
| Error | severity | errorMessage | ||||||
| 0 | 0 | |||||||
| 11 | 4 | Muskingum routing is unstable with the given .parameters. | ||||||
| 12 | 4 | Invalid Muskingum
parameters: K = xxx, x = xxx, Number of reaches = nnn |
||||||
| Subroutines Called: | ||||||||