Dispatch Methods

The dispatch methods for the Reach object allow the various Routing methods to solve. They execute whenever the Reach has enough information to solve.

Solve given Inflow, No Routing

This method is available for the No Routing user method.

It solves for Outflow when Inflow, and possibly Local Inflow, Return Flow, and Diversion are known, based on user method selection and the status of those slots.

Required Known Slots

• Inflow

• Local Inflow, if one of the Solve or Contingent Local Inflow or Solve Outflow methods is selected; see Local Inflow and Solution Direction.

Required Unknown Slots

• Outflow

Method Details

If diversion or return flow is linked, the dispatch method will wait for a value in these slots before solving. If a value is set for the minimum outflow, the solved value for Outflow will be compared to the minimum. If the minimum has not been met, the outflow will be raised to the minimum, and the necessary inflow will be placed in the Local Inflow Adjust slot, if it is visible.

This dispatch method executes the methods in the following order.

1. Stage Calc

2. Reach Seepage (if One Timestep Seepage Lag is not selected)

3. Seepage Routing

4. Min Diversion Bypass

5. Diversion from Reach

6. Reach Evaporation

7. Reach Bank Storage

8. Gain Loss

9. Mass balance, as follows:

10. Negative Outflow Adjustment

11. Stage Calc

12. Reach Seepage (if One Timestep Seepage Lag is selected)

Solve given Outflow, No Routing

This method is available for the No Routing user method.

It solves for Inflow when Outflow, and possibly Local Inflow, Return Flow, and Diversion are known, based on user method selection and the status of those slots.

Required Known Slots

• Outflow

• Local Inflow, if the Specify Local Inflow, Solve Inflow or Outflow user method is selected.

Required Unknown Slots

• Inflow

Method Details

If diversion or return flow is linked, the dispatch method will wait for a value in these slots before solving. This dispatch method executes the methods in the following order.

1. Stage Calc

2. Diversion from Reach

3. Gain Loss

4. Reach Bank Storage

5. Reach Seepage (if One Timestep Seepage Lag is not selected)

6. Seepage Routing

7. Mass balance, as follows:

8. Stage Calc

9. Reach Seepage (if One Timestep Seepage Lag is selected)

Solve given Inflow, Outflow, No Routing

This method is available for the No Routing user method.

It solves for Local Inflow when Inflow and Outflow, and possibly Return Flow, and Diversion are known, based on user method selection and the status of those slots.

Required Known Slots

• Inflow

• Outflow

Required Unknown Slots

• Local Inflow

Method Details

If diversion or return flow is linked, the dispatch method will wait for a value in these slots before solving. This dispatch method executes the methods in the following order.

1. Stage Calc

2. Reach Seepage (if One Timestep Seepage Lag is not selected)

3. Seepage Routing

4. Reach Evaporation

5. Min Diversion Bypass

6. Diversion from Reach

It then solves up for the following:

7. Gain Loss

8. Reach Bank Storage

It then solves mass balance as follows:

Solve given Outflow, Time Lag

This dispatch method is available for the Time Lag routing user method.

This is a front for the Time Lag, Stage Calc, and Volume Calc methods, which do all the work. Inflow is found at some previous time when Outflow is known at the current timestep.

Required Known Slots

• Outflow

Required Unknown Slots

• Inflow

Solve given Inflow, Time Lag

This dispatch method is available for the Time Lag routing user method.

This is a front for the Time Lag, Stage Calc, and Volume Calc methods, which do all the work. Outflow is found at some future time when Inflow is known at the current timestep.

Required Known Slots

• Inflow

Required Unknown Slots

• Outflow

Solve given Inflow, Outflow, Time Lag

This dispatch method is available for the Time Lag routing user method.

This is a front for the Time Lag, Stage Calc, and Volume Calc methods, which do all the work. Outflow is found at some future date, and inflow is found at some previous time, when both are known at the current timestep.

Required Known Slots

• Inflow

• Outflow

Solve given Inflow, Time Lag, Downstream Only

This dispatch method is available if Time Lag routing is selected and the Specify Local Inflow, Solve Outflow or No Local Inflow, Solve Outflow user methods are selected.

Outflow is found at some future timestep when inflow is known on the current timestep. Unlike the Solve given Inflow, Time Lag dispatch method, which is able to solve both upstream and downstream depending on the knowns and unknowns, Solve given Inflow, Time Lag, Downstream Only can only solve in the downstream direction. In addition, this dispatch method calls the Stage Calc and Volume Calc methods.

See Specify Local Inflow, Solve Outflow and No Local Inflow, Solve Outflow for details.

Required Known Slots

• Inflow

Solve given Inflow, Storage Routing

This dispatch method is available for the Storage Routing, Variable Storage Routing, and Modified Puls routing methods.

The dispatch method executes the Routing, Stage Calc, and Volume Calc methods, which do all the work. Outflow is found at the current timestep when inflow is known at the current timestep.

Required Known Slots

• Inflow

Required Unknown Slots

• Outflow

Solve given Inflow

This is the dispatch method that all other Routing methods use.

It executes the Stage, Min Diversion Bypass, Diversion from Reach, and then the Routing user methods. After the routing method, the Stage method is called again.

Required Known Slots

• Inflow

Required Unknown Slots

• Outflow

Note: If the Step Response, Variable Step Response, or Variable Time Lag routing method is selected, Outflow is not a required unknown. See the following sections for details:

Revised: 01/11/2023