VPMC Routing
    • 23 Oct 2022
    • 9 Minutes to read
    • Dark

    VPMC Routing

    • Dark

    Article Summary

    The VPMC Routing unit models the flow of water in open channels using a Variable Parameter Muskingum-Cunge method to route the flow.


    Field in Data Entry Form
    Name in Datafile

    Section Label

    node label at discharge point



    First Lateral Inflow Node

    first lateral inflow node label



    Second Lateral Inflow Node

    second lateral inflow node label



    First Lateral Inflow

    First lateral inflow label



    Second Lateral Inflow

    Second lateral inflow label



    Third Lateral Inflow

    Third lateral inflow label



    Fourth Lateral Inflow

    Fourth lateral inflow label



    Distance to Next Section

    distance to next discharge point or cross section in metres (a zero specifies the end of the reach and for this last node the wavespeed/attenuation data will not be used)




    bed elevation in m AD (not used in computations)




    bed slope (may be left blank, and not used in computations)



    Minimum number of Subnodes

    minimum number of subnodes allowed (default and minimum 2, ie just the upstream and downstream nodes)



    Maximum number of Subnodes

    maximum number of subnodes (default 100, maximum 100)



    Subintervals from specified discharge

    Check this box to calculate ideal distance spacing based on a specified discharge



    Specified discharge

    Discharge used to estimate optimum distance step




    number of ensuing data lines (can be zero if this is the last section of the reach)




    discharge [m3/s]




    wavespeed [m/s]




    attenuation parameter [1/m]



    Water Level

    optional water level corresponding to discharge qi under normal depth conditions



    Specify Velocity Using

    For “VQ Power Law”, enter the coefficients a, b, V0 and Q0 to define the flow-velocity relationship; otherwise (VQ Rating), enter the relationship at discrete points in the supplied table.



    Constant a

    scaling parameter for velocity calculation (>0)


    Exponent b

    power law parameter for velocity calculation (>0)


    Lowest Permitted Velocity

    lowest permitted velocity (>0)


    Flow Threshold

    flow below which velocity is set to Vo (>0)




    number of subsequent V Q data pairs


    V Q Rating

    a table of velocity and flow values used to interpolate velocity values for subsequent Flood Modeller Quality simulations


     - These fields are only used when the results of the simulation are to be used for a subsequent water quality simulation. However, dummy data values, or the defaults in the 1D Simulation window, must always be specified.

    Theory and Guidance

    The VPMC Routing (MUSK-VPMC) unit models the flow of water in natural and man-made open channels, using a Variable Parameter Muskingum-Cunge method to route the flow. You must supply a table of wavespeed and attenuation parameter against flow. Lateral inflows can be distributed along a reach between adjacent VPMC Routing units.

    The VPMC Routing calculates the discharge within a river or channel reach given the inflow hydrograph at the upstream end, up to two flow boundaries as lateral inflows and up to four lateral inflow units.

    The unit is based on the diffusion equation, and uses a numerical scheme which is similar to the Muskingum equation with variable parameters k and x. The algorithm is described in Price R.K. (1977) and further discussed in Reeves A. (1995). A very similar algorithm was applied in the earlier flow routing software RIBAMAN.

    The method requires a relationship between discharge, wavespeed and attenuation, which is user defined. The VPMC Cross Section uses the same method, but with the added ability to derive wavespeed and attenuation curves from cross-section details.

    A minimum of two VPMC Routing or VPMC Cross Section units is required for each river or channel reach. The downstream section need not have any wavespeed/attenuation or section data, and such data is not used even if it is supplied. In general, it is only necessary to supply two nodes for any one reach, even if the distance between them is considerable.

    Flood Modeller automatically selects a distance step based on the Courant condition at each timestep, but within constraints set by the user. The distance increment also cannot exceed the distance between adjacent sections. Intermediate nodes are generated internally, and so it is only necessary to provide a VPMC Routing node at each end of a reach. Flows at these internal nodes cannot be examined directly, but you can control how many such nodes are generated.

    Up to two boundaries can be connected as lateral inflows to each VPMC Routing node. These can be flow/time boundaries or hydrological boundaries. The generated flow is distributed evenly along a reach between adjacent VPMC Routing or VPMC Cross Section nodes. To split a lateral inflow into more than one VPMC Routing or VPMC Cross Section node, one must attach the inflow boundary unit to a lateral inflow unit; the lateral inflow nodes (labels 4-7) within the VPMC unit must then be cross-referenced in the lateral inflow unit.

    You cannot use Replicated Sections with VPMC Routing units.


    The equation used in the VPMC Routing is a form of the convective diffusion equation derived from the St Venant equations, written here in conservative form:




    Q = discharge [m3/s]

    c = c(Q) = wavespeed [m/s]

    µ = µ(Q) = attenuation [m2/s]

    x = chainage along reach [m]

    t = time [s]

    q = lateral inflow per unit length [m2/s].

    In linear form, the finite difference scheme for this equation is the same as for the Muskingum-Cunge equation with variable parameters.

    You supply a table of discharges Q, wavespeeds c and attenuation parameters a (µ=aQ). Guidance on derivation of these parameters is given in standard textbooks and in the Flood Studies Report (1975) Volume 3. Alternatively, a VPMC Cross Section, which generates wavespeed/attenuation curves from section details, can be used (see this section also for a suggested derivation of wavespeed and attenuation parameters).

    Space Increment

    Flood Modeller determines the space increment for each reach at each timestep so that the equation:




    is satisfied as nearly as possible, i.e. giving a Courant number as near as possible to unity. The space step cannot exceed the distance between adjacent sections, and an integer number of space steps is required between each section. You can also specify a maximum and minimum number of subnodes (between 2 and 100) and so control the space increment within each reach. Setting the maximum and minimum to the same value allows the space step to be fixed at a constant value, although doing so (or to within a smaller range than the defaults) reduces the ability to achieve the courant condition stated above.

    The number of subnodes used at each timestep is stored in the unit state array for the upstream MUSK unit and can be inspected graphically or tabulated in the usual way.

    Flood Modeller differs from RIBAMAN in that here the space increment can vary with time; RIBAMAN fixes it using the wavespeed corresponding to the peak inflow into the reach.

    Time Increment

    The time step is supplied by the user as usual; it should be sufficiently small to capture the shape of the flood wave. It may be advisable for it also to satisfy



    It has been suggested that this condition helps to eliminate the leading-edge dip which appears in many flood-routing algorithms. For more details, see Ponce and Theurer, discussion of Weinmann D.E. and Laurenson E.M. (1979), Journal of the Hydraulics Division, ASCE Vol. 106, No. HY11, pp 1945-1947. However, the algorithm implemented in Flood Modeller includes a truncation of the attenuation parameter curve which eliminates the dip on the leading edge of the flood wave in almost all cases.

    Note: Since the method used is inherently timestep dependent, then adaptive timestepping with any of the Muskingum VPMC routing methods should only be used with caution.

    Note that the VPMC methods may be considered as an extension of the Muskingum method, by which the k and x parameters vary dynamically. In order to conform to the recommended constraints for these parameters, then the Courant number should be approximately equal to 1 (as described above), and the dimensionless attenuation parameter (which differs from the attenuation parameter entered in the VPMC table by a factor of (3) above) should be restricted to the range (0,1), equivalent to 0 <x%lt;½. This may be specified by using the Minimum and Maximum VPMC attenuation parameter options in the Advanced Parameters tab in the simulation (*.ief) file editor.

    Velocity Calculation

    If the flood routing model is to be used with the Water Quality model then an approximate formula must be used to calculate nodal velocities as cross-sectional data are not utilised. These values are then used to determine flow areas which are written into the 'unit mode' array if the water quality model is to be run subsequently.

    Two options are available to specify velocity as a function of flow:

    1. Power Law Function

    V = Vo + a( Q - Qo )b for Q > Qo

    V = Vo for Q ≤ Qo

    1. User Supplied Relationship

    In this case you provide velocity and flow data pairs and the program linearly interpolates between these values.


    The wavespeed/attenuation curves are copied into the Unit Characteristics file (extension .zzu) if the model is run in Boundary mode.

    If Flood Modeller is used then Muskingum units can be preceded or followed by normal Flood Modeller river reaches. However a water level must be provided at the downstream end of a river reach if it is joined to a Muskingum unit. This can be achieved either by providing the optional table of water levels within the MUSK-VPMC data entry, or by attaching a QRATING unit to the upstream node of the MUSKINGUM reach.

    Muskingum and river sections cannot be mixed within a reach; reaches of the two types can be joined by JUNCTION units (with only two nodes if necessary). The three types of Muskingum unit (MUSKINGUM, MUSK-VPMC and MUSK-XSEC) can be mixed within a reach.

    The normal Flood Modeller connectivity rules apply for Muskingum units and therefore an appropriate downstream boundary (e.g. Head-Time Boundary or Flow-Head Boundary) is required at the downstream end of Muskingum routing reaches which are not connected to a structure, although this will not have any impact on the routing calculations.

    REPLICATE units cannot be used to replicate MUSK-VPMC or MUSK-XSEC units. MUSK-VPMC units also cannot be used in conjunction with INTERPOLATE units.

    In very rare circumstances, it is possible in large models for the data storage space within Flood Modeller to become full. If an error message indicates that this has happened, then the storage required for each MUSK-VPMC unit can be reduced by decreasing the value of maxsub and allowing fewer internal subnodes. This may also decrease run times.

    The variation of the number of space increments may occasionally lead to the loss of resolution on the flood wave or poor volume conservation. This is because the space increment is based on the discharge at the upstream end of the reach, and so the number of calculation subnodes may drop dramatically while the floodwave is still within the reach. If this becomes a problem, the user should fix the parameters minsub and maxsub to give a suitable number of subnodes; the recommended number is that corresponding to the maximum inflow into the reach. This can be obtained by carrying out a full unsteady run and inspecting the resulting inflows and subnode numbers (which are stored in the unit state for the upstream section). The model can then be run again with the new fixed space increment.

    RIVER units should not be directly connected to Conduit units. Users can connect CONDUIT and RIVER reaches using a Junction if no head loss occurs at the join. Alternatively, the specialised Culvert Inlet and Culvert Outlet units can be used to model the losses associated with transitions from open channel to culverts and vice versa. Bernoulli Loss units are also available to model more generalised losses.

    Datafile Format

    Line 1 - keyword 'RIVER' [comment]

    Line 2 - keyword 'MUSK-VPMC'

    Line 3 - Label1 [, Label2 [, Label3]] [, Label4, Label5, Label6, Label7]

    Line 4 - dx, z, slope, minsub, maxsub

    Line 5 - keyword 'WAVESPEED ATTENUATION'

    Line 6 - n1

    Line 7 to Line 6+n1 - qi, ci, ai, [yi]

    Line 7+n1 - keyword 'VQ POWER LAW' or 'VQ RATING'

    Line 8+n1 - Vo, Qo, a, b, (if 'VQ POWER LAW') or ndat (if 'VQ RATING')

    Line 9+n1 to Line 8+n1+ndat - V, Q (if 'VQ RATING')

    Was this article helpful?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.