skip to main content
Groundwater Storage
Objects and Methods
Groundwater Storage
The Groundwater Storage Object models a simple fill and spill underground body of water. The Inflow to the object is either given through user input or a link from a slot on another object. Storage and Outflow are then calculated based on a mass balance performed on the object and the selected user methods. The user must input a value for Storage at the initial timestep of the run for the object to solve successfully.
The user must select a Groundwater Outflow method for this object; otherwise, a RiverWare error will be posted during initialization.
General Slots
Slots that always appear for this object
Storage
Type: SeriesSlot
Units: VOLUME
Description: volume of water in the object
Information: Computed by mass balance.
I/O: Output; the initial value must be input.
User Methods
The slots described under each user method are those that are only applicable to that particular user method. They are in addition to any general slots on the object.
Solution Type
* Single Computed Outflow
This is the default method in the Solution Type category. It will allow the groundwater object to solve with the following slots, user methods, and dispatch methods.
Slots Specific to This Method
Inflow
Type: MultiSlot
Units: FLOW
Description: flow rate at entrance of the object
Information: May be set as input by the user or linked to the return flow of one or more other objects.
I/O: Optional; either input or set by propagation across a link
Outflow
Type: SeriesSlot
Units: FLOW
Description: flow rate at exit of the object
Information:  
I/O: Output only
Inflow from Groundwater
Type: MultiSlot
Units: FLOW
Description: flow into the groundwater storage object from nearby groundwater storage objects
Information: The subslots of this multislot contain the individual inflow values. A subslot is created when the users links this slot to an origin object.
I/O: Output only
* Head Based Groundwater Grid
The Head Based Groundwater Grid method is used to instantiate the appropriate slots, user method categories, and dispatch methods for solution with connections to other objects (groundwater, reaches, etc.). There are no calculations specifically associated with this user method. Rather, the method is used to specify the solution type performed by the groundwater object.
Note:  RiverWare assumes a consistent datum throughout all related objects’ elevation and stages slots.
Slots Specific to This Method
Inflow from Surface Water
Type: Multi Slot
Units: flow
Description: Inflow(s) to the groundwater object from the surface water system
Information: A positive value is an inflow to the groundwater object. Since this slot is a Multi Slot, it can include inflows from multiple surface water sources. If this slot is not linked, it is set to zero at the beginning of the run. It is a required known for dispatching.
I/O: Input or linked
Elevation
Type: Series Slot
Units: length
Description: The water table elevation of the groundwater object. Datum should be consistent throughout all related objects’ elevation and stages slots.
Information: This value is computed as a function of change in storage, Aquifer Area, and Specific Yield
I/O: Output; the initial elevation value must be input
Elevation Previous
Type: Series Slot
Units: length
Description: The previous water table elevation
Information: This slot is used to control dispatching between connected groundwater objects. It will have the same value as the Elevation slot at the previous timestep. When the Elevation is computed during dispatching, the same value will be set on the Elevation Previous slot at the NEXT timestep to trigger the dispatching of connected groundwater objects at the next timestep.
I/O: Output only
Specific Yield
Type: Scalar Slot
Units: none
Description: The ratio of the volume of water added or removed directly from the saturated aquifer to the resulting change in the volume of aquifer below the water table
Information: The specific yield is used to compute water table elevation as a function of aquifer area and change in storage
I/O: Required input
Aquifer Area
Type: Scalar Slot
Units: Area
Description: The horizontal area of the aquifer. The surface area of the water table.
Information: Used to compute aquifer elevation and evapotranspiration.
I/O: Input or computed; see “Compute Conductance”.
Specified Inflow
Type: Series Slot with Periodic Input
Units: Flow
Description: Inflows to the groundwater object typically from other groundwater objects that are not modeled. This slot provides a place to specify any inflows that aren’t classified as other inflows.
Information: This value can be positive (into the object) or negative (out of the object). Specified Inflows that are negative can cause the storage to become negative.
I/O: Input as a periodic or series data. Specify a single value if you have a constant value. If no value is specified, it is assumed the value is zero, but that is not shown on the slot.
* Head Based Boundary Condition
The Head Based Boundary Condition method is used to add the appropriate slots, user method categories, and dispatch methods for solution of a groundwater network linked to a reservoir. This method triggers the solveGWInflows_givenElevations dispatch method; see “solveGWInflows_givenElevations”.
An object with this method selected should be linked to a single Reservoir object with the Linked Seepage method selected (see “Linked Seepage”). It should also be linked to one or more Groundwater objects with the Head Based Groundwater Grid method selected for the Solution Type. There are no calculations specifically associated with this user method. Rather, the method is used to specify the solution type performed by the Groundwater object.
Note:  RiverWare assumes a consistent datum throughout all related objects’ elevation and stages slots.
There is no Storage on a Groundwater object with this method selected. It is added only as a means to convey Seepage water from the linked Reservoir into the linked Groundwater object. The Elevation on this object will be the same as the Pool Elevation on the Reservoir.
When this new method is selected, the following categories are available:
The Groundwater Evaporation, Groundwater Evapotranspiration, Groundwater Pumping, and Groundwater Water Quality, methods will not be available.
Slots Specific to This Method
Elevation Previous
Type: Series
Units: Length
Description: Represents the previous timestep Pool Elevation of the linked Reservoir; datum should be consistent throughout all related objects’ elevation and stages slots
Information: This slot is used to control dispatching between connected groundwater objects. It will have the same value as the Elevation slot at the previous timestep. The value will come from the linked Reservoir dispatching and propagating the value across the link.
I/O: Output only
Elevation
Type: Series
Units: Length
Description: Represents the Pool Elevation of the linked Reservoir; datum should be consistent throughout all related objects’ elevation and stages slots
Information:  
I/O: Output only
Inflow from Surface Water
Type: Multi Slot
Units: Flow
Description: Inflow(s) to the groundwater object from the surface water system, typically from a linked Reservoir
Information: A positive value is an inflow to the groundwater object.
I/O: Output only
The typical linking to connect a groundwater network to a Reservoir object is shown in Figure 15.1. The object Under would have the Head Based Boundary Condition method selected for the Solution Type and is used to convey the Seepage from the Reservoir to the laterally linked Groundwater objects. The laterally linked Groundwater objects would have the Head Based Groundwater Grid method selected for the Solution Type. There may be 1-4 laterally linked Groundwater objects. The appropriate Elevation Previous and Flow Factor slots should be linked between the Under Groundwater object and the laterally linked Groundwater objects. The linking with the Reservoir object is illustrated in Figure 15.1.
Figure 15.1   
* Link to MODFLOW GW
Note:  RiverWare’s connection with MODFLOW is currently not functional. This method has been disabled and cannot be selected. An error will be posted at model load if this method was previously selected. Contact CADSWES for help.
The Link to MODFLOW GW method allows the groundwater object to be linked with MODFLOW. Data transferred between RiverWare and MODFLOW, as well as any interpolation and summation of this data, will be handled within the computational subbasin framework. See “Link to MODFLOW GW” for details.
Note:  RiverWare assumes a consistent datum throughout all related objects’ elevation and stages slots.
See “Computational Subbasin Functionality Guide” for details on the MODFLOW connection. See “GroundWaterStorage Object” for description of the Groundwater object’s specific data configuration.
Slots Specific to This Method
Lateral Flux from MODFLOW
Type: Series Slot
Units: Flow
Description: The flux between the MODFLOW model lateral boundary cell(s) head and the RiverWare GroundWater head calculated by MODFLOW
Information: A positive value is an inflow to the groundwater object.
I/O: Output only
Aquifer Area
Type: Scalar Slot
Units: Area
Description: The horizontal area of the aquifer or the surface area of the water table.
Information: Used to compute elevation. May be used as a calibration parameter.
I/O: Required input
Elevation
Type: Series Slot
Units: Length
Description: The water table elevation on the groundwater object
Information: This value is computed as a function of Percolation, GroundWater return flow, and Lateral Flux.
I/O: Output only
Elevation Previous
Type: Series Slot
Units: Length
Description: The previous water table elevation on the groundwater object
Information: This slot is used to control dispatching between connected groundwater objects. It will have the same value as the Elevation slot at the previous timestep. When the Elevation is computed during dispatching, the same value will be set on the Elevation Previous slot at the NEXT timestep to trigger the dispatching of connected groundwater objects at the next timestep.
I/O: Output only
Inflow from Surface Water
Type: Series Slot
Units: Flow
Description: Inflow(s) to the groundwater object from the surface water system
Information: A positive value is an inflow to the groundwater object. If this slot is not linked, it is set to zero at the beginning of the run. It is a required known for dispatching.
I/O: Optional
Specific Yield
Type: Scalar Slot
Units: None
Description: The ratio of the volume of water added or removed directly from the saturated aquifer to the resulting change in the volume of aquifer below the water table
Information: The specific yield is used to compute the GW head elevation as a function of aquifer area and change in storage
I/O: Required input
Groundwater Outflow
This method category is dependent upon the selection of the Single Computed Outflow in the Solution Type category. The user selectable methods in this category are used to calculate Storage and Outflow from the Groundwater object based on a given Inflow.
* None
This is the default user method for the Groundwater Outflow category. It performs no calculations. If it is selected, RiverWare gives an error because it is unable to calculate either an Outflow from or a Storage for the Groundwater Storage object.
* Table Flow
The Table Flow method calculates the outflow based on the previous timestep’s Storage and a table input by the user.
Slots Specific to This Method
Storage Outflow Table
Type: TableSlot
Units: VOLUME vs. FLOW
Description: outflow for any given volume of storage
Information:  
I/O: Required input
Outflow is calculated by a linear interpolation of the Storage Outflow Table using the Storage calculated at the previous timestep.
* Linear Flow
The Linear Flow method calculates Outflow as a linear function of the previous timestep’s Storage value.
Slots Specific to This Method
GW Alpha Param
Type: TableSlot
Units: PER TIME
Description: an empirical parameter used in the Outflow equation
Information:  
I/O: Required input
Outflow is calculated by an empirical equation.
* Current Storage Linear Flow
The Current Storage Linear Flow method calculates Outflow as a linear function of the Average Storage at the current timestep.
Slots Specific to This Method
Average Storage
Type: SeriesSlot
Units: VOLUME
Description: the average storage over the timestep
I/O: Output only
GW Alpha Param
Type: TableSlot
Units: PER TIME
Description: an empirical parameter used in the Outflow equation
I/O: Required input
At each timestep the method first solves for instantaneous storage, then the Average Storage, and lastly Outflow.
The three equations are as follows:
* Lagged Linear Flow
The Lagged Linear Flow method calculates Outflow linearly as a function of the alpha coefficient times some previous storage value.
Slots Specific to This Method
GW Alpha Param
Type: TableSlot
Units: PER TIME
Description: an empirical parameter used in the Outflow equation
I/O: Required input
Lag Time
Type: TableSlot
Units: TIME
Description: the amount of time lag between a Storage and its corresponding Outflow
I/O: Required input
Outflow is computed as follows:
Depending on the length of the lag time, one or more storage values may need to be given prior to the required initial storage in order to compute the first outflows. If these values are not input by the user, the method assumes that storage has been constant and uses the initial storage value (which is always required user input.) This method uses instantaneous end of timestep storage values.
* Exponential Flow
The Exponential Flow method calculates Outflow as an exponential function of the previous timestep’s Storage value.
Note:  This calculation is carried out in user units. The value set in the GW Beta Param slot, as set by the user, must be consistent with the user units for the Storage slot. Changing the user units on the Storage slot will produce a different result. There will not be an automatic conversion of the GW Beta Param value.
Slots Specific to This Method
GW Alpha Param
Type: TableSlot
Units: PER TIME
Description: an empirical parameter used in the Outflow equation
Information:  
I/O: Required input
GW Beta Param
Type: TableSlot
Units: NONE
Description: an empirical parameter used in the Outflow equation
Information: This value must be consistent with the user units for the Storage slot. If the user units on the Storage slot are changed, the value in this slot must be changed manually to correspond to the new units. Otherwise different results will be produced.
I/O: Required input
Outflow is calculated by an empirical equation. The exponential term is computed in user units (i. e. Storage(t-1) is converted to user units, raised to the power of GW Beta Param, and then converted back to the standard RiverWare units before being multiplied by GW Alpha Param), as follows:
* Impulse Response
The Impulse Response method calculates Outflow using a set of impulse response outflow coefficients.
Slots Specific to This Method
Impulse
Type: SeriesSlot
Units: FLOW
Description: the impulse is the inflow minus pumped flow
I/O: Output only
Number of Outflow Coeffs
Type: TableSlot
Units: NONE
Description: the number of impulse response coefficients to use
Information: This single integer value is the number of values that need to be entered in the Outflow Coeffs slot.
I/O: Required input
Outflow Coeffs
Type: TableSlot
Units: NONE
Description: the impulse response coefficients
Information: The same number of coefficients must be input as the value in the Number of Outflow Coeffs slot. The input will be in rows.
I/O: Required input
This method first calculates the impulse to groundwater as a function of inflow and pumped flow, as follows:
Outflow is computed as a function of current and previous impulse values and the outflow coefficients, as follows:
Excess GW Storage
This method category is dependent upon the selection of the Single Computed Outflow in the Solution Type category. The Excess GW Storage method is used to specify how excess groundwater will be modeled.
* No Excess Storage
This is the default method. It performs no calculations. There are no slots specifically associated with this method.
* Excess Storage to Outflow
Used if the user wants to specify a maximum possible storage in the aquifer. Any calculated storage that exceeds this value is converted to Outflow.
Slots Specific to This Method
Max GW Capacity
Type: TableSlot
Units: VOLUME
Description: maximum storage capacity of the groundwater system
Information:  
I/O: Optional; this slot is only used if it is input.
The calculated Storage value is first checked against Max GW Capacity. If Storage is greater than Max GW Capacity, excess storage is calculated as the difference between Storage and Max GW Capacity. Then, Storage is set equal to Max GW Capacity. The amount of excess storage is converted to a flow rate and added to the Outflow. If Storage is less than Max GW Capacity, nothing is done.
* Excess Storage Divert
Used if the user wants to specify a maximum possible storage in the aquifer. Any calculated storage that exceeds this value is converted to a flow value and set in a separate, linkable slot.
Slots Specific to This Method
Max GW Capacity
Type: TableSlot
Units: VOLUME
Description: maximum storage capacity of the groundwater system
Information:  
I/O: Optional; this slot is not used if it is not input.
Excess GW Outflow
Type: SeriesSlot
Units: FLOW
Description: represents the required flow rate to dissipate any excess storage
Information: Calculated as the excess storage (Storage minus Max GW Capacity) divided by the timestep length.
I/O: Output only
The calculated Storage value is first checked against Max GW Capacity. If Storage is greater than Max GW Capacity, excess storage is calculated as the difference between Storage and Max GW Capacity. Then, Storage is set equal to Max GW Capacity. The amount of excess storage is converted to a flow rate and the value is set on the Excess GW Outflow slot. If Storage is less than Max GW Capacity, nothing is done.
GW Deep Percolation
These methods are used to model vertical losses from groundwater storage to a deeper, underlying aquifer.
* None
This is the default method. It performs no calculations. There are no slots specifically associated with this method.
* Input Percolation
This method is used if the user want to input the amount of vertical loss or percolation.This method is dependent upon the selection of the Single Computed Outflow in the Solution Type category.
Slots Specific to This Method
Percolation
Type: SeriesSlot
Units: FLOW
Description: the flow rate of water lost vertically to deeper groundwater storage
Information:  
I/O: Optional; if not input it is set to zero.
A local variable, storage flow, is calculated as the previous timestep’s Storage value divided by the length of the current timestep. This represents the flow rate required to drain the aquifer of all its stored water in the current timestep. If the input value of Percolation is greater than storage flow, an error is posted and the run is aborted. Otherwise, Percolation is converted to a volumetric value and is included in the mass balance (see “Dispatch Methods”).
* Linear Percolation
This method calculates Percolation in the same way Outflow is calculated by the Linear Flow method in the Groundwater Outflow category. This method is dependent upon the selection of the Single Computed Outflow in the Solution Type category.
Slots Specific to This Method
Percolation
Type: SeriesSlot
Units: FLOW
Description: the flow rate of water lost vertically to deeper groundwater storage
Information:  
I/O: Output only
Percolation Alpha Param
Type: TableSlot
Units: PER TIME
Description: an empirical parameter used in the equation to calculate Percolation
Information:  
I/O: Required input
Percolation is calculated as follows:
* Exponential Percolation
This method calculates Percolation in the same way Outflow is calculated by the ExponentialFlow method in the Groundwater Outflow category. This method is dependent upon the selection of the Single Computed Outflow in the Solution Type Category.
Note:  This calculation is carried out in user units. The value set in the Percolation Beta Param slot, as set by the user, must be consistent with the user units for the Storage slot. Changing the user units on the Storage slot will produce a different result. There will not be an automatic conversion of the Percolation Beta Param value.
Slots Specific to This Method
Percolation
Type: SeriesSlot
Units: FLOW
Description: the flow rate of water lost vertically to deeper groundwater storage
Information:  
I/O: Output only
Percolation Alpha Param
Type: TableSlot
Units: PER TIME
Description: an empirical parameter used in the equation to calculate Percolation
Information:  
I/O: Required input
Percolation Beta Param
Type: TableSlot
Units: NONE
Description: an empirical parameter in the equation to calculate Percolation
Information: This value must be consistent with the user units for the Storage slot. If the user units on the Storage slot are changed, the value in this slot must be changed manually to correspond to the new units. Otherwise different results will be produced.
I/O: Required Input
Percolation is calculated by an empirical equation. The exponential term is computed in user units (that is, Storage(t‑1) is converted to user units, raised to the power of Percolation Beta Param, and then converted back to the standard RiverWare units before being multiplied by Percolation Alpha Param), as follows:
* Head Based Percolation
This method is dependent upon the selection of the Head Based Groundwater Grid or the Link to MODFLOW GW in the Solution Type category. This method is used to calculate vertical flow to a deeper aquifer or to incorporate boundary conditions.
Percolation
Type: Series Slot
Units: flow
Description: The flow to the deep aquifer
Information: Computed based on the previous timestep elevation difference. A positive value represents an outflow to the deep aquifer.
I/O: Typically output, but can be input or set by a rule.
Deep Aquifer Conductance
Type: Scalar Slot
Units: area per time
Description: The conductance between the groundwater storage object and the deep aquifer
Information:  
I/O: Input or computed; see “Groundwater Conductance”.
Deep Aquifer Elevation
Type: Series Slot
Units: length
Description: The elevation/head associated with the deep aquifer. Datum should be consistent throughout all related objects’ elevation and stages slots.
Information: The previous timestep (beginning of timestep) value is used to compute Percolation
I/O: Required input
The Head Based Percolation method is called from the dispatch method. Percolation is computed by the following equation.
Note:  The percolation cannot be larger than the previous Storage, converted to a flow. The computed Percolation value is passed back to the dispatch method and used in the mass balance equation to solve for the current Storage.
* Head Based Linked Percolation
This method is dependent upon the selection of the Head Based Groundwater Grid in the Solution Type category. This method is used to calculate vertical flow to a deeper aquifer or to incorporate boundary conditions. In this method, the deep aquifer elevation is linked to another object below it, usually an aquifer, “Specify or Link Flows”.
Percolation
Type: Series Slot
Units: flow
Description: The flow to the deep aquifer
Information: Computed based on the previous timestep elevation difference. A positive value represents an outflow to the deep aquifer.
I/O: Typically output, but can be input or set by a rule.
Deep Aquifer Conductance
Type: Scalar Slot
Units: area per time
Description: The conductance between the groundwater storage object and the deep aquifer
Information: This should be the same value as the object below
I/O: Input or computed; see “Groundwater Conductance”.
Deep Aquifer Elevation Previous
Type: Series Slot
Units: length
Description: The elevation/head associated with the deep aquifer. Datum should be consistent throughout all related objects’ elevation and stages slots.
Information: This value is used to compute Percolation
I/O: Computed by linked object
The Head Based Percolation method is called from the dispatch method. Percolation is computed by the following equation.
The percolation cannot be larger than the previous Storage, converted to a flow. The computed Percolation value is passed back to the dispatch method and used in the mass balance equation to solve for the current Storage.
Groundwater Conductance
Methods in this category allow you to choose how you wish to specify conductance.
This category is available when any of the non-default, 15 flow methods in the Lateral Link Direction category is selected. It is also available when Head Based Percolation is selected in the GW Deep Percolation category. That is, it is available for any method that instantiates one of the conductance slots on the groundwater object.
Note:  You can not mix use of these two approaches across linked groundwater objects. That is, groundwater objects that are calculating conductance cannot be linked to groundwater objects specifying conductance.
* Specify Conductance
This is the default method and does not instantiate any new slots. You must specify each of the conductance values (Conductance Left, Conductance Right, etc...)
* Compute Conductance
This method allows you to specify hydraulic conductivity and the geometry for each flow component. Then the object uses information on the object and on adjacent objects to determine the conductance in each direction. The calculation uses the following equation to take the geometric mean of conductance:
where i is the given object, and i+1 is the connected object. K is the hydraulic conductivity, Areai to i+1 is the area shared by object i and i+1 that is perpendicular to the flow, and Distance is the aquifer’s distance in the direction of the flow.
The following slots are added
Hydraulic Conductivity
Type: Scalar Slot
Units: Velocity,
Description: This slot contains the hydraulic conductivity, Kx. This represents the conductivity for lateral flows in/out of the groundwater object in the left and right direction.
Information: This value is also used to compute the conductivity in the upstream and downstream directions by dividing by the Anisotropy Ratio.
I/O:  
Anisotropy Ratio
Type: Scalar Slot
Units: No Units
Description: This slot contains a ratio, used to adjust the hydraulic conductivity in the upstream/downstream or left/right direction.
Information: This ratio represents the ratio of hydraulic conductivity in Left-Right direction to the Up-Down direction (Kx/Ky). It is applied when computing conductance.
I/O: If not specified, it defaults to 1.0.
Aquifer Length
Type: Scalar
Units: Length
Description: Length of the groundwater object in the upstream/downstream direction at the centroid. This is considered the Y direction
Information:  
I/O: Required input if flow can go left, right, or to deep percolation
Aquifer Width
Type: Scalar
Units: Length
Description: Length of the groundwater object in the left/right direction at the centroid. This is considered the X direction
Information:  
I/O: Required input if flow can go upstream, downstream, or to deep percolation
Aquifer Thickness
Type: Scalar
Units: Length
Description: Length of the groundwater object in the left/right direction at the centroid. This is considered the Z direction
Information:  
I/O: Required input if flow can go left, right, upstream or downstream.
Deep Aquifer Hydraulic Conductivity
Type: Scalar
Units: Velocity
Description: Conductivity to the deep aquifer
Information:  
I/O: Required Input
Deep Aquifer Depth
Type: Scalar
Units: Length
Description: Distance from the groundwater object to the deep aquifer.
Information: This value is only used to compute conductance
I/O: Required Input
For mass conservation across objects, the Conductance must be identical on adjacent objects, i.e. Objecti+1.Conductance Right must equal Objecti.Conductance Left. For the conductance to be identical, the area shared by adjacent objects must be the same.
To prevent requiring that you, the user, specify that the shared area of adjacent objects are the same, instead the computation will average the areas between adjacent cells. One way to think of this is that the length, width and thickness are measured/specified at the centroid of the object.
Specifying dimensions at the centroid allows you to input dimensions that are not the same on adjacent objects. This approach does violate the assumption that the cells are rectangular prisms, but in reality, the groundwater objects are rarely rectangular prisms. You can specify the same dimensions on adjacent objects and it will model rectangular prisms.
Figure 15.2   
Because the geometry is input, the following assumptions apply:
• Left/Right is perpendicular to the plane defined by Length and Thickness
• Left/Right is in the same plane as the Width.
• Upstream/Downstream is perpendicular to the plane defined by Width
• Upstream/Downstream is perpendicular to the plane as the Length.
• On adjacent objects, Left is connect to Right and vice versa.
• On adjacent objects, Upstream is connected to Downstream and vice versa.
The actual sense of the left/right/upstream/downstream does not matter as long as it is consistent.
Computation Details
The method is executed at the start of the run. If a method is selected (like Deep Percolation) and the appropriate values in the above scalars are missing, an error will be issued and the run will be stopped.
The following process is performed for each groundwater object (computation of conductance in the Left/Right direction is used as an example):
1. Compute the Aquifer Area as
Note:  The Aquifer Area is registered as having the Aquifer Length as its Source slot. When a table slot has a source slot, it becomes read-only and displays a cross hatch over the data. It also provides a note indicating the source slot used to compute the data. The source slot is set at beginning of run, so the user must initialize the run to see the read-only status.
2. Determine the object (i+1) linked to the Elevation Upstream/Downstream/Left/Right Previous. For example, when it is computing Conductance Left, it will get the slot linked to Elevation Left Previous. From that linked slot, the method will get the parent object and then the appropriate parameters, Thickness, Length, Width, K.
3. Compute the average of the adjacent cell’s dimensions and compute the area shared by the two cells. The area shared between the two cells is the average of their dimensions.
4. The Conductance (C) for each flow component is computed using the information on adjacent objects to compute the conductance values for each direction. This computation takes the harmonic mean of Hydraulic Conductivity (K) according to the following equation (Left/Right is used as an example):
where i is the given object, and i+1 is the connected object. In the equation, Kx is as follows:
Figure 15.3 shows the values input and the computed values for this computation.
Figure 15.3   
5. This computation is repeated for each side: Upstream (using Ky), Downstream (Ky), and Right (Kx) using the appropriate dimensions. For the upstream and downstream directions, Ky is used, as follows:
6. The deep aquifer conductance is computed as follows:
The computed conductances will be set on the appropriate scalar conductance slot. If there are values already on the slot, they will be overwritten.
Note:  The appropriate conductance slot(s) will be registered as having a Source slot. When a table slot has a source slot, it becomes read-only and displays a cross hatch over the data. See screenshot below. It also provides a note indicating the source slot used to compute the data. The source slot is set at beginning of run, so the user must Initialize the run to see the read-only status. If you deselect this method, you must initialize the run again to clear the source slot.
Groundwater Pumping
These methods are used to model pumping from a groundwater aquifer. The solution strategy is based on mass balance equations.
* None
This is the default method. It performs no calculations. There are no slots specifically associated with this method.
* Input Pumping
This method is designed to be used with the conjunctive use methods on the Agg Diversion Site and WaterUser objects. It models groundwater pumping by simply removing a given amount of water from storage. This method is dependent upon the selection of the Single Computed Outflow in the Solution Type category.
Slots Specific to This Method
Available For Pumping
Type: SeriesSlot
Units: flow
Description: the amount of water that can be pumped from storage
Information: If not input, it is calculated based on the previous timestep’s storage value and the current timestep’s outflow and percolation values. This slot is usually linked to the Available Supplemental Water slot on the Agg Diversion Site
I/O: Optional
Pumped Flow
Type: Multi Slot
Units: flow
Description: the amount of water removed (per timestep) from groundwater storage
Information: Can be input by the user but is usually linked to the Supplemental Diversion slot on the Agg Diversion Site or WaterUser.
I/O: Optional
Water Table Elevation
Type: SeriesSlot
Units: length
Description: elevation of the groundwater table
Information: This slot is only used to hold data for calibration purposes. It is not used in any calculations and is never calculated.
I/O: Optional
If Available For Pumping is not input by the user, it is calculated from the previous timestep’s storage and the current timestep’s outflow and percolation. A local variable, storage flow, is calculated as the previous timestep’s Storage value divided by the length of the current timestep. This represents the flow rate required to drain the aquifer of all its stored water in the current timestep. Available For Pumping is then calculated as follows:
If a GW Deep Percolation method is not selected, Percolation is assumed to be zero.
Pumped Flow should receive its value from a link to Supplemental Diversion on the Agg Diversion Site or Water User. It is then converted to a volumetric value, volume pumped (Pumped Flow multiplied by the timestep length), and used in the mass balance equation (see Dispatch Methods).
* Input Pumped Flow
This method is designed to be used with the conjunctive use methods on the Agg Diversion Site and WaterUser objects. It models groundwater pumping by simply removing a given amount of water from storage. Flow may be input or linked. When linked the water user(s) will determine the pumped flow based on the conjunctive use and supplemental diversion calculations. This method is dependent upon the selection of the Head Based Groundwater Grid in the Solution Type category
Pumped Flow
Type: Multi Slot
Units: flow
Description: Water removed from the aquifer by pumping (expressed as a flow rate)
Information: Removed from storage via the mass balance equation
I/O: Input or linked
Available For Pumping
Type: Series Slot
Units: flow
Description: The water available for pumping on a given timestep
Information: If not input, the Available For Pumping is the current storage (before pumping is removed).
I/O: Optional; computed if not input
This method is called from the SolveGWMB_GivenPreviousElevations dispatch method.
If Available For Pumping (at t+1) is not input by the user, it will be set as the current, computed storage value converted to a flow rate minus percolation minus ET as a flow. This value will propagate to the linked water user objects which can then dispatch and compute their supplemental diversions. These values return to the groundwater object in the Pumped Flow slot. The groundwater object will then re-dispatch and recompute storage given the new values for Pumped Flow. The full equation is as follows:
Variables in the above equation that are not defined (due to the method selection) or are unknown are assumed to be zero. The Available for Pumping value will propagate to the linked water user objects which can then dispatch and compute their Diversion which is passed back to the Groundwater object as Pumped Flow. The current storage will be computed by the mass balance equation described in the SolveGWMB_GivenPreviousElevations dispatch method.
Note:  Since the same Available For Pumping value can be referenced by several water users, the water users could pump the aquifer dry if the storage is small and each water user pumps up to the Available for Pumping. There is no mechanism to short water users or prioritize pumping if the demand exceeds the Available For Pumping. Rather, each water user can take up to the available and the aquifer storage will go negative. If this happens, RiverWare will issue a warning message but will not abort the run.
Previous Elevation
Three user methods are available for this method category: None, Input Elevation, and Storage Elevation Interpolation. These methods are dependent upon the selection of the Single Computed Outflow in the Solution Type category.
* None
This is the default method. It performs no calculations. There are no slots specifically associated with this method.
* Input Elevation
This method instantiates the Previous Groundwater Elevation slot for user input.
Slots Specific to This Method
Previous Groundwater Elevation
Type: SeriesSlot
Units: length
Description: user input previous groundwater elevation
Information:  
I/O: Required input
* Storage Elevation Interpolation
This method instantiates the Previous Groundwater Elevation and Storage Elevation Table slots. User input is required in the Storage Elevation Table relating storage volume to groundwater elevation. The Previous Groundwater Elevation slot is set based on table interpolation of storage values at the previous timestep. The Previous Groundwater Elevation slot is linkable to Agg Diversion Site and Water User objects.
Slots Specific to This Method
Storage Elevation Table
Type: TableSlot
Units: volume vs. length
Description: user input relating storage volume and groundwater elevation
Information:  
I/O: Required input
Previous Groundwater Elevation
Type: SeriesSlot
Units: Length
Description: previous groundwater elevation based upon the Storage Elevation Table
I/O: Output only
Impulse Response Components
The Impulse Response Components category is only visible when users have selected the Single Computed Outflow in the Solution Type category and the Impulse Response method in the GW Outflow Calc category. Two user methods are available with the Impulse Response Components category: None and Multiple Response Components.
* None
This is the default method. It performs no calculations. There are no slots specifically associated with this method.
* Multiple Response Components
This method calculates the Response Components on the Groundwater Storage object.
Slots Specific to This Method
Response Components
Type: NoComputeMultiSlot
Units: FLOW
Description: the slot contains the individual response components
Information: The subslots of this multislot contain the individual responses. A subslot is created when the user links this slot to a destination object.
I/O: Output only
Number of Response Coeffs
Type: TableSlot
Units: NONE
Description: the integer number of response coefficients to be used for each response component
Information: A column will be added automatically for each of the responses. The name of the column is used to match it with the appropriate subslot in the Response Components slot. Each column contains a value that is the number of response coefficients to be used for that particular response.
I/O: Required Input
Response Coeffs
Type: TableSlot
Units: NONE
Description: the impulse response coefficients
Information: The number of coefficients must be input in each column as the value in the corresponding column in the Number of Response Coeffs slot. The columns are added and named automatically as a new subslot is added to the Response Components slot.
I/O: Required input
As users create and remove links to the Response Components slot, corresponding subslots are added and removed. The creation of a link automatically adds a new column to the Number of Response Coeffs slot and the Response Coeffs slot to represent that particular response component. The first column on the Response Components multislot is the multislot itself and is not one of the subslots. It is set as the sum of all the subslot values. It is the responsibility of the user to make sure the data entered into the table columns correspond to the proper subslot in the Response Components slot.
where i is an iteration variable that takes on the column value for each of the Response Components.
Each of the response components is actually a part of the total Outflow. However, because the user may not want to model all of the response components, the sum of the responses does not have to equal the Outflow.
In order to avoid mass balance issues, RiverWare does not allow both the Outflow slot and the Response Components slot to be linked. The one exception is that the Response Components slot can be linked to a Data Object if the Outflow slot is linked. This allows users to view the responses without actually routing them.
Negative Outflow Adjustment
The Negative Outflow Adjustment category is only visible when the user has selected the Single Computed Outflow in the Solution Type category and Impulse Response method from the Groundwater Outflow category. The category contains four methods: None, Adjust Outflow, Adjust Components, and Adjust Outflow and Components.
* None
This is the default method. It performs no calculations. There are no slots specifically associated with this method.
* Adjust Outflow
This method changes any negative Outflow values to zero. There are no slots specifically associated with this method.
* Adjust Components
This method changes any negative Response Components values to zero. There are no slots specifically associated with this method.
* Adjust Outflow and Components
This method changes any Outflow and Response Components values that are negative to zero. There are no slots specifically associated with this method.
Groundwater Evapotranspiration
This category contains three methods: None, Input ET Rate, and Elevation ET Table.
* None
This is the default method. It performs no calculations. There are no slots specifically associated with this method. Evapotranspiration is assumed to be zero.
* Input ET Rate
The Input ET Rate method allows the user to input the ET rate. This value is converted to a volume based on the Riparian Area and the timestep length. The volume of ET is used to compute storage.
ET Rate
Type: Series Slot
Units: velocity
Description: The evapotranspiration rate in units of velocity
Information: The ET Rate is used to compute the evapotranspiration volume. The ET volume is used to compute storage via the mass balance equation.
I/O: Required input
ET Volume
Type: Series Slot
Units: volume
Description: The ET Rate multiplied by the Riparian Area and the timestep length
Information: Used to compute storage
I/O: Generally output; if input, it overrides the value computed using the ET Rate
Riparian Area
Type: Series Slot
Units: AREA
Description: The horizontal area of the riparian zone
Information: Used to compute ET Volume
I/O: Required Input
* Input ET Volume
The Input ET Volume method allows the user to input the ET Volume. The volume of ET is used to compute storage.
ET Volume
Type: Series Slot
Units: volume
Description: The volume of water lost from the groundwater object through riparian evapotranspiration
Information: Used to compute storage
I/O: Input only
* Elevation ET Table
The Elevation ET Table method computes evapotranspiration given the relationship between aquifer elevation and ET rate. The ET rate found in the Elevation ET Table is multiplied by the Riparian Area to get the ET Volume.
Elevation ET Table
Type: Table Slot
Units: length vs velocity
Description: A table relating water table elevation to ET rate
Information: The ET rate is determined based on the beginning of timestep (previous) elevation value. The ET rate is then multiplied by the Riparian Area and timestep length to compute the ET Volume.
I/O: Required Input
ET Volume
Type: Series Slot
Units: volume
Description: The ET Rate multiplied by the Riparian Area and the timestep length
Information: Used to compute storage
I/O: Output; if input, it overrides the value computed from the Elevation ET Table
Riparian Area
Type: Series Slot
Units: AREA
Description: The horizontal area of the riparian zone
Information: Used to compute ET Volume
I/O: Required Input
Groundwater Evaporation
This category contains two methods: None and Wetted Sand Evaporation. These methods are only available when the Connected Groundwater Object method is selected in the Solution Type category.
* None
This is the default method. It performs no calculations. There are no slots specifically associated with this method. Evaporation is assumed to be zero.
* Wetted Sand Evaporation
This method computes the evaporation that occurs from the wetted sand of the shallow groundwater. As shown in the half cross section in Figure 15.4, the groundwater evaporation comes from the wetted sand in the shallow groundwater that is adjacent to the water surface, but optionally, does not include the water surface. The area that contributes to the Evaporation is the Wetted Sand Area minus the Wetted Sand Area Excluded. The final evaporation is then computed using this reduced area, a coefficient, and the evaporation rate. The evaporation rate decreases from the pan evaporation rate at the surface to zero at some depth. This decrease in the rate of evaporation is simulated by a table that relates the elevation to the percent of the Pan Evaporation Rate at that elevation. Also, if there is no flow in the reach and the elevation is below a certain threshold level, the evaporation is limited to a reduced periodic rate.
Figure 15.4   
This method was designed to work with a connected Reach object where the reach computes its Surface Area (see “Pan Evaporation”) and then propagates the value to the Wetted Sand Area Excluded. In this linking approach, evaporation from the water surface comes from the Reach while evaporation from the wetted sand comes out of the groundwater.
Figure 15.5   
Slots Specific to This Method
Evaporation
Type: Series Slot
Units: Volume
Description: This slot is the output to the method. It holds the losses as calculated by the equation.
Information:  
I/O: Output only
Elevation Evaporation Factor Table
Type: Table
Units: Length vs Decimal
Description: This table relates the groundwater elevation with a factor that is used to compute the fraction of pan evaporation that occurs at that elevation.
Information: The values should be between 0.0 and 1.0 (0% to 100%), inclusive. The factor should be zero at (and below) the elevation at which no evaporation will occur. It should be 1.0 at (and above) the ET surface elevation (typically the streambed elevation of the reach above). See the diagram and the table for a view of what this table should represent.
Note:  The Elevations must be in increasing order.
I/O: Required Input
 
 
Data to enter in the slot
 
Elevation
Pan Evaporation Factor
 
5460
0.0
Elevation at extinction depth
5490
0.0
 
5491
0.2
 
5492
0.5
 
5493
0.8
 
5494
0.9
ET surface elevation
5495
1.0
Full Channel Elevation
5500
1.0
Pan Coefficient
Type: Periodic
Units: No Units
Description: This slot holds a coefficient that is applied to the computation.
Information: The coefficient should be between 0 and 1.0.
I/O: Required Input
Pan Evaporation
Type: Series
Units: Velocity (Length/Time)
Description: This slot contains the pan evaporation rate.
Information: This slot must have a valid input or an error will occur.
I/O: Input only
Soil Limited Evaporation Factor Table
Type: Table
Units: Length vs Decimal
Description: This table relates the groundwater elevation with a factor that is used to compute the fraction of soil limited evaporation that occurs at that elevation.
Information: The values should be between 0.0 and 1.0 (0% to 100%), inclusive. The factor should be zero at (and below) the elevation at which no evaporation will occur. The largest factor should be at the Soil Limited Evaporation Elevation (see “Soil Limited Evaporation Elevation”). See the diagram and the table for a view of what this table should represent.
Note:  The Elevations must be in increasing order.
I/O: Required Input if Soil Limited Evaporation Elevation is specified
 
 
Data to enter in the slot
 
Elevation
Soil Limited Evaporation Factor
Elevation where no soil limited evap occurs
5490
0.0
 
5495
0.5
Soil Limited Evaporation Elevation
5495.5
0.9
Soil Limited Evaporation Rate
Type: Periodic
Units: Velocity (Length/Time)
Description: The evaporation rate when there is no area to be excluded and the water table elevation is below the Soil Limited Evaporation Elevation; see “Soil Limited Evaporation Elevation”.
Information:  
I/O: Input required when Soil Limited Evaporation Elevation is specified
Soil Limited Evaporation Elevation
Type: Scalar
Units: Length (elevation)
Description: The elevation at which evaporation is only limited by the soil above, not the pan evaporation rates.
Information: If this slot is not specified, then the method will always use the second equation below; Soil Limiting Evaporation will not be modeled.
I/O: Optional Input
Wetted Sand Area
Type: Scalar
Units: Area
Description: The horizontal area of the aquifer that is considered wetted and could cause evaporation.
Information: This area includes any surface area of connected reaches
I/O: Input Only
Wetted Sand Area Excluded
Type: Series Slot
Units: Area
Description: The wetted sand area that should not be included in the computation
Information: This provides a slot to adjust the wetted surface area based on current conditions.
I/O: If not input, set by a rule, or linked, it is assumed to be zero.
This method will be executed from the solveGWMB_givenPreviousElevations dispatch method before mass balance takes place.
1. First, if the Wetted Sand Area Excluded is linked but not valid, the Groundwater object will exit the dispatch method and wait for the connected object to compute a value. Otherwise, if it is not valid, the Wetted Sand Area Excluded will default to 0 (but will not be set).
2. If the Wetted Sand Area Excluded is greater than or equal to the Wetted Sand Area, the Evaporation is set to zero and the method stops executing. This meets the need that wetted sand evaporation does not occur if the channel is full.
3. If the Soil Limited Evaporation Elevation is valid, the Elevation Previous is less than or equal to Soil Limited Evaporation Elevation, and the Wetted Sand Area Excluded is equal to zero. Then the previous Elevation is looked up on the Soil Limited Evaporation Rate periodic slot to get the soil limited evaporation rate that would occur on that date. This is stored as a temporary variable tempSoilLimitedEvaporationRate. Also, the previous Elevation is looked up on the Elevation Evaporation Factor Table to get the fraction of Soil Limited Evaporation Rate that occurs at that elevation. This is stored as a temporary variable tempSoilLimitedEvapFactor. The evaporation (flow) is computed as follows:
4. When the above conditions are not true, the previous Elevation is looked up on the Elevation Evaporation Factor Table to get the fraction of pan evaporation that occurs at that elevation. This is stored as a temporary variable tempElevEvapFactor. Then, the evaporation (flow) is computed as follows:
5. Finally, the Evaporation Flow is converted to a volume and saved as a local Evaporation variable.
6. The method finishes and exits. The dispatch method sets the Evaporation slot and subtracts it as a loss from the groundwater mass balance computation.
See the following sections for details:
Lateral Link Direction
The Lateral Link Direction category is dependent upon selection of the Head Based Groundwater Grid or the Link to MODFLOW GW method. When the Head Based Groundwater Grid method is selected, the user needs to specify the number and location of the connected objects with respect to the current object. This category contains 15 user methods which are all the combinations of Upstream, Downstream, Left and Right. For example a groundwater object may be connected to only one other groundwater object which is upstream. Or it may be connected to four other groundwater objects which are upstream, downstream, left, and right. These methods are used to control the slots added and the dispatch conditions used (the dispatch conditions will depend on the Elevation Upstream/Downstream/Left/Right Previous slots).
When the Link to MODFLOW GW method is selected, the user needs to specify the number and location of the connected objects with respect to the current object. This category contains 3 user methods Upstream, Downstream, Upstream and Downstream. For example, a groundwater object may be connected to only one other groundwater object which is upstream. Or it may be connected to both an upstream and downstream object. These methods are used to control the slots added and the dispatch conditions used (the dispatch conditions will depend on the Elevation Upstream and Downstream Previous slots).
See the following topics for details:
* No Linked Objects
A No Linked Objects method is also available. This method can be used without specifying connections to other groundwater objects.
* Upstream, Downstream, Left, and/or Right
Note:  For the remainder of this section, the term Elevation U/D/L/R Previous slots will be used to represent any or all of the combinations of the four slots: Elevation Upstream Previous, Elevation Downstream Previous, Elevation Left Previous, and Elevation Right Previous.
Elevation Upstream, Downstream, Left, and Right Previous
Type: Series Slot
Units: length
Description: The previous elevation of a connected groundwater object
Information: These are actually 4 separate slots. The user is allowed to choose the number and the location of the connected groundwater objects (with respect to the current object). There is a slot for each connected object. These slots were previously called Previous Adjacent Elevation Left/Right/Upstream/Downstream.
I/O: Output only
Conductance Upstream, Downstream, Left, and Right
Type: Scalar Slot
Units: Area per time
Description: The conductance values that correspond to the area between this groundwater object and each of the connected groundwater objects
Information: These are 4 separate slots. The user is allowed to choose the number and location of the connected groundwater objects. There is a slot for each connected object.
I/O: Input or computed; see “Groundwater Conductance”.
Flow Upstream, Downstream, Left, Right
Type: Series Slot
Units: flow
Description: The flow between the current object and each of the connected groundwater objects
Information: These are 4 separate slots. The user is allowed to choose the number and location of the connected groundwater objects. There is a slot for each connected object. A positive value represents an inflow to the groundwater object.
I/O: Output only
Flow Factor Upstream, Downstream, Left Right
Type: Series Slot
Units: Fraction
Description: Proportion of the flow initially calculated from the previous elevations that will actually occur
Information: This value is between 0 and 1. It can remain NaN, and the value is assumed to be 1.0. If the slot is not linked, it is unused (assumed to be 1). If the slot is linked, and the calculated lateral flow would result in a negative storage, the dispatch method sets this slot to a value less than 1 in order to reduce the lateral flow and prevent negative storage.
I/O: Output only
In the code, one method deals with all 15 user methods in the Lateral Link Direction category. This method is called by the dispatch method and computes temporary values for the Flow slots. These temporary values may be adjusted in the dispatch method by applying the corresponding Flow Factor (see “solveGWMB_givenPreviousElevations”). Depending on the number of connected objects, the method performs one or all of the following calculations:
The results are passed back to the dispatch method and used in the mass balance equation to solve for storage. The actual slot values are set from the dispatch method.
Note:  The Flow terms are computed based on the previous timestep elevation differences. This is done to avoid iteration problems that would result if the groundwater flows were computed based on current timestep elevations.
Note:  Mass may be lost from the system if the conductance values are not identical on either side of a given link. For example in a two aquifer system where an upstream GW Object 1 is linked to a downstream GW Object 2, the upstream conductance on GW Object 2 must be identical to the downstream conductance on GW Object 1 to conserve mass. If you use the Compute Conductance method, on each groundwater object, then adjacent conductances are guaranteed to be identical; see “Compute Conductance”.
Dispatch Methods
* solveGWMB_givenInflow
This dispatch method is used for Single Computed Outflow calculations only. With a given Inflow, the dispatch method can execute to calculate Outflow and Storage. The required knowns and unknowns (at the current timestep) are listed below.
Required Knowns
• Inflow
Required Unknowns
• Outflow
• Storage
The solveGWMB_givenInflow dispatch method is very simple. First the previous timestep’s Storage is checked. If it is not known, the method is exited because a previous Storage value is required for any of the user methods in the Groundwater Outflow category to execute successfully. If there is a previous Storage value, the dispatch method executes the selected GW Deep Percolation method and the selected Groundwater Outflow method. If the selected Groundwater Outflow method is ImpulseResponseOutflow, the dispatch method next executes the selected Impulse Response Components method and Negative Outflow Adjustment method.
A local variable, storage flow, is calculated as the previous timestep’s Storage value divided by the length of the current timestep. This represents the flow rate required to drain the aquifer of all its stored water in the current timestep. If the calculated Percolation plus Outflow is greater than storage flow, a warning is posted and the following calculations take place.
Outflow is recalculated as follows:
However, if Input Percolation is selected in the GW Deep Percolation category, Outflow is recalculated as follows:
Percolation, if not input, is recalculated as follows. A warning is posted to notify the user of this change.
This prevents the storage from going negative. If there is no method selected to calculate Percolation, it is assumed to be zero.
The Groundwater Pumping method is then executed to compute Available For Pumping at the current timestep based on the previous Storage and the current Outflow and Percolation.
Percolation (if applicable), Outflow, and Pumped Flow (if applicable) are then converted to volumetric values by multiplying them by the length of the timestep. Storage is then calculated using the following mass balance equation:
* solveGWMB_givenPreviousElevations
This dispatch method is used for Head Based Groundwater Grid calculations only. The required knowns and unknowns (at the current timestep) are listed below.
Required Knowns
• Elevations Left/Right/Upstream/Downstream Previous
There is a different set of dispatch conditions for each of the methods in the Lateral Link Direction category. If the No Linked Objects method is selected, then the elevations slots are not applicable.
Required Unknowns
• Storage
The solveGWMB_givenPreviousElevations dispatch method will compute the current Storage and Elevation values based on the mass balance equation described below. Following is a list of the steps performed in the dispatch method.
Figure 15.6  Diagram of the Groundwater Storage object including the mass balance components and typical links
Conditions for dispatching are as follows:
• The dispatch method will execute when the Inflow From Surface Water and the Elevation Upstream/Downstream/Right/Left Previous slots are known. Depending on the number of connected groundwater objects, one or all of the Elevation Upstream/Downstream/Right/Left Previous slots may be active.
• If the Inflow From Surface Water slot is not being used (is not linked) it is set to zero for all timesteps at the beginning of the run.
• Whenever a new value is received for Inflow From Surface Water or any of the Elevation Previous slots, the object will re-dispatch.
Steps in the dispatch method are as follows:
Note:  For the remainder of this section, the term U/D//R/L is used to represent a slot or variable for any or all of the combinations of the four directions, for example Flow U/D/R/L to represent Flow Upstream, Flow Downstream, Flow Right and Flow Left. The set of directions that are actually used depends on the method selected in the Lateral Link Direction category.
1. If the previous Storage is not known, the method exits and waits. In the beginning of run, there is a check to ensure that the user inputs an initial storage value and initial Elevation value.
2. A tempStorage local variable is set equal to the previous timestep Storage. This is updated at each step by the inflows and outflows to track the running mass balance.
3. Get Preliminary Lateral Flows: A method is called to compute the preliminary, unadjusted lateral flows, temp Flow Upstream/Downstream/Right/Left. One or all of these slots may be computed based on the number of connected groundwater objects. For any Flow slot that is not in use, the corresponding temp Flow value gets set to zero.
4. Add Lateral Inflows: All of the positive lateral flows (lateral inflows) are added to the running mass balance. The corresponding Flow Factor is applied. If the Flow Factor is NaN, it is assumed to be 1.0, but it is not set. If the Flow Factor is not linked, it is unused and is assumed to be 1.0.
FOR (U/D/R/L)
IF (temp Flow U/D/R/L > 0)
END IF
5. Add Inflow from Surface Water: Inflow from Surface Water is always used as is. If the value is negative and causes the tempStorage to become negative, a warning will be issued.
6. Add Specified Inflow: Specified Inflow is always used as is. If the value is negative and causes the tempStorage to become negative, a warning will be issued.
7. Subtract Pumped Flow: If the Input Pumped Flow method is selected, and the Pumped Flow slot is linked to another object(s) but does not contain a value, the method exits and waits for the linked water user object(s) to set Supplemental Diversion. These values are then passed back to the groundwater object through the Pumped Flow slot. If the Pumped Flow value is already present, then it is subtracted from the running mass balance. If no Groundwater Pumping method is selected, then Pumped Flow is not included in the mass balance.
8. Subtract Percolation: If the GW Deep Percolation method is selected, then it is called. Percolation is initially computed as discussed in the Head Based Percolation user method section; see “Head Based Percolation”. If Percolation is specified (input or set by rules), then it is always used as is. If the value is positive and causes the tempStorage to become negative, a warning will be issued. Otherwise if Percolation is not specified, it is checked that it will not cause the tempStorage to become negative. Positive Percolation is flow out of the groundwater object.
IF Percolation is input or set by rules
Use Percolation as is
ELSE
Set the Percolation slot, but limit it to the amount of water remaining in tempStorage. Do not allow storage to become (more) negative.
IF (tempStorage <= 0)
ELSE
END IF
END IF
9. Subtract Evaporation: The Groundwater Evaporation method is executed. If the Wetted Sand Area Excluded is visible and linked but not valid, the Groundwater object exits the dispatch method and waits for the connected object to compute a value. Otherwise, evaporation is incorporated into the running mass balance with a check that it will not cause tempStorage to become negative.
IF (tempStorage <= 0)
ELSE
END IF
10. Subtract Evapotranspiration: The Groundwater Evapotranspiration method is executed and calculates a preliminary ET Volume. If ET Volume is specified (input or set by rules), then it is always used as is. If the value causes the tempStorage to become negative, a warning will be issued. Otherwise if ET Volume is not specified, it is checked that it will not cause the tempStorage to become negative.
IF ET Volume is input or set by rules
Use ET Volume as is
ELSE
Set the ET Volume slot, but limit it to the amount of water remaining in tempStorage. Do not allow storage to become (more) negative.
IF (tempStorage <= 0)
ELSE
END IF
END IF
11. Incorporate Lateral Outflows: A preliminary storage value is calculated after incorporating all negative lateral flows (lateral outflows). If that value is negative and the Flow Factor U/D/R/L slots are linked, a Flow Factor is calculated that will result in a storage of 0. If the tempStorage before applying the lateral outflows was already negative, then the Flow Factor will be zero. The Flow Factor will propagate across the link to be applied to the corresponding lateral inflow on the linked groundwater object. If the resulting preliminary storage is non-negative, then the Flow Factor is assumed to be 1.0, but the slot value is not set. If the Flow Factor U/D/R/L slots are not linked, they will not get used, and thus any negative preliminary storage will remain as the final storage.
IF (tempStorage < 0)
IF (temp Flow U/D/R/L < 0)
END IF
ELSE
FOR (U/D/R/L)
IF (temp Flow U/D/R/L < 0)
END IF
END FOR
IF (tempStorageWithLateralFlow < 0)
IF (temp Flow U/D/R/L < 0 AND Flow Factor U/D/R/L is linked)
END IF
END IF
END IF
Note:  This logic assumes that either none of the Flow Factor slots are linked, and thus the Flow Factor slots are not used, or all of the Flow Factor slots are linked appropriately to Flow Factor slots on adjacent Groundwater objects. If the linking of the Flow Factor slots is inconsistent, it could result in a gain or loss of mass.
12. Incorporate the final negative lateral flows into the running mass balance.
FOR (U/D/R/L)
IF (temp Flow U/D/R/L < 0)
END IF
END FOR
13. The final flow values are then set on the Flow U/D/R/L slots.
14. The final Storage slot value is computed by the following mass balance equation:
The groundwater flow, percolation, Inflow from Surface Water, Specified Inflow and pumped flow terms in the above equation are actually the volumes associated with those flow rates (flow rate multiplied by timestep length). Some of the terms may not be active depending on method selection (i.e. ET Vol, Percolation, Pumped Flow).
If Storage is negative, a warning will be issued but the run will not abort.
15. The Elevation slot is computed as follows:
16. The Elevation Previous slot is set at the next timestep given the current Elevation value. This will propagate to the Elevation Left/Right/Upstream/Downstream Previous slots on the connected groundwater objects. This will trigger the connected groundwater objects to dispatch at the next timestep.
17. The Previous Storage slot is set at the next timestep given the current Storage value. This is an invisible slot. It will trigger the current groundwater object to re-dispatch at the next timestep if necessary.
18. If the Input Pumped Flow method is selected, and the Available For Pumping slot is linked to another object(s), Available For Pumping for the next timestep is computed from the current Storage with ET Volume and Percolation removed if they are already known. This value will then propagate to the linked water user objects which can then compute Supplemental Diversion on the next timestep. These values are then passed back to the groundwater object through the Pumped Flow slot.
Note:  Mass Balance - The groundwater flows between the objects are only used to compute storage. So each individual object will mass balance, but the flow values are not transferred between objects. This is because the only linked slots are the Elevation Previous slots and Flow Factor slots. For these objects to mass balance, and for the groundwater system to mass balance, the conductance values must be identical for connected groundwater objects on either side of a given link. If you use the Compute Conductance method on each groundwater object, then adjacent conductances are guaranteed to be identical; see “Compute Conductance”.
* solveGWInflows_givenElevations
This dispatch method is used for Head Based Boundary Condition solution type only. The purpose of this solution type is allow for linking of a groundwater network to a Reservoir. The required knowns and unknowns (at the current timestep) are listed below.
Required Knowns
• Elevation Previous Left/Right/Upstream/Downstream
There is a different set of dispatch conditions for each of the methods in the Lateral Link Direction category. If the No Linked Objects method is selected, then the Elevation Left/Right/Upstream/Downstream Previous slots are not applicable.
Required Unknowns
Steps in the dispatch method:
1. The Elevation slot is set for the previous timestep:
The Elevation Previous value will typically be propagated across a link from the Reservoir Previous Elevation slot.
2. A method is called to compute Flow Upstream, Downstream, Left, and Right. One or all of these slots may be computed based on the number of connected Groundwater objects. These are computed based on the Elevation Previous and Elevation Left/Right/Upstream/Downstream Previous and Conductance Left/Right/Upstream/Downstream. The Flow Factor Left/Right/Upstream/Downstream is applied if it is not NaN. (The Flow Factor will be calculated by the linked Groundwater object using the Head Based Groundwater Grid solution type. If it is NaN, it is assumed to be 1.)
3. If a Deep Percolation method is selected, then it is called. Percolation is computed as discussed in the user method sections for the Deep Percolation category.
4. Finally the mass balance is performed to compute the Inflow from Surface Water:
Reservoir/Groundwater Object Interaction is a description of the typical Groundwater object and Reservoir interaction. It consists of three sets of objects. See Figure 15.7.
• Reservoir with Linked Seepage method (a)
• One Groundwater object with the Head Based Boundary Condition method (b)
• One to four laterally linked Groundwater objects solving using Head Based Groundwater Grid (c1-c4)
Figure 15.7   
On the first timestep, the c1‑c4 get an Inflow from Surface Water and solve for Storage and Elevation given Elevation Previous values. Also, b solves given Elevation Previous which came across the link from the Reservoir as set on the Reservoir during initialization. A new Inflow from Surface Water is computed for b and propagates to the Reservoir.Seepage. The Reservoir dispatches once it has enough information and solves for Storage and Pool Elevation at t and sets Previous Pool Elevation at t+1. This propagates to Elevation Previous on b at t+1, which in turn propagates to Elevation Upstream/Downstream/Right/Left Previous on c1-c4 at t+1. This allows c1-c4 to solve at t+1, and b also solves at t+1 for Inflow from Surface Water. This linked value provides Reservoir.Seepage for the next timestep. The process continues through the run where the c1-c4 and b solve one timestep before the Reservoir is able to solve.
* SolveGWMB_MODFLOW_Link
This dispatch method is available only when the Link to MODFLOW GW method is selected; see “Link to MODFLOW GW”. The required knowns for this dispatch method depend on the specified connected groundwater objects. There are a different set of dispatch conditions for each of the methods in the Lateral Link Direction category; see “Lateral Link Direction”.
See “Computational Subbasin Functionality Guide” for details on the MODFLOW connection. See “GroundWaterStorage Object” for a description of the Groundwater object’s specific data configuration.
Required Knowns
• Elevation Upstream/Downstream Previous
Required Unknowns
• Storage
The dispatch method computes the current Storage and Elevation values based on the mass balance equation described below. Following is a list of the steps performed in the dispatch method.
Steps in the dispatch method are as follows:
1. If the previous Storage is not known, the method exits and waits. In the beginning of run, there is a check to ensure that the user inputs an initial storage value and initial Elevation value.
2. A method is called to compute Flow Upstream and Downstream. One or both of these slots may be computed depending on the connection of the objects.
3. The GW Deep Percolation method is called. Percolation is computed.
4. Storage is computed by the following mass balance equation:
5. The groundwater flow, flux, percolation, and surface water inflow terms in the above equation are actually the volumes associated with those flow rates (flow rate multiplied by timestep length). If Storage is negative, a warning will be issued but the run will not abort.
6. The Elevation slot is computed as follows:
7. The Elevation Previous slot is set at the next timestep given the current Elevation value. This will propagate to the Elevation Previous slots on a the connected groundwater objects. This will trigger the connected groundwater objects to dispatch at the next timestep.
8. The Previous Storage slot is set at the next timestep given the current Storage value. This is an invisible slot. It will trigger the current groundwater object to re-dispatch at the next timestep if necessary.
 

1 See eqn 2.5.6 in Charbeneau, Randall J, Groundwater Hydraulics and Pollutant Transport, Prentice Hall, 2000.

Revised: 06/03/2019