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.

Links: Not linkable

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

Links: Can be linked to the Return Flow of any object, Seepage on a Reach or Distribution Canal, or GW Return Flow on a WaterUser.

Outflow

Type: SeriesSlot

Units: FLOW

Description: flow rate at exit of the object

Information:

I/O: Output only

Links: Can be linked to the Inflow of any object or to the Local Inflow slot on a Reach.

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

Links: Linkable, usually to the Response Components slots on other Groundwater Storage objects.

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

Links: May be linked to the Seepage slot on a reach object and/or any other surface water source

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

Links: Not linkable

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

Links: Linked to the Elevation Upstream/Downstream/Left/Right Previous slots on a connected groundwater object, and/or the Elevation Previous slot on a reach.

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

Links: Not linkable

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”.

Links: Not linkable

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.

Links: Not Linkable

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

Links: Typically linked to the Previous Elevation slot on a Reservoir

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

Links: Not linkable

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

Links: Typically linked to the Seepage slot on a Reservoir object; although this is a multi slot, for this method it can only be linked to a single slot. Linking this slot to multiple slots will cause an error.

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

Links: Linkable

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

Links: Not linkable

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

Links: Linkable

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

Links: Linkable

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

Links: Usually linked to the GW Return Flow slot on the Water User object

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

Links: Not linkable

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

Links: Not linkable

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

Links: Not linkable

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

Links: Usually not linked

GW Alpha Param

Type: TableSlot

Units: PER TIME

Description: an empirical parameter used in the Outflow equation

I/O: Required input

Links: Not linkable

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

Links: Not linkable

Lag Time

Type: TableSlot

Units: TIME

Description: the amount of time lag between a Storage and its corresponding Outflow

I/O: Required input

Links: Not linkable

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

Links: Not linkable

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

Links: Not linkable

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

Links: Usually not linked

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

Links: Not linkable

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

Links: Not linkable

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.

Links: Not linkable

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.

Links: Not linkable

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

Links: Can be linked to the Inflow slot on any object, the Return Flow slot on any object, or the Local Inflow slot on the Reach.

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.

Links: May be linked to the Inflow slot on a Groundwater Storage object.

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

Links: May be linked to the Inflow slot on a Groundwater Storage object.

Percolation Alpha Param

Type: TableSlot

Units: PER TIME

Description: an empirical parameter used in the equation to calculate Percolation

Information:

I/O: Required input

Links: Not linkable

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

Links: May be linked to the Inflow slot on a Groundwater Storage object.

Percolation Alpha Param

Type: TableSlot

Units: PER TIME

Description: an empirical parameter used in the equation to calculate Percolation

Information:

I/O: Required input

Links: Not linkable

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

Links: Not Linkable

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.

Links: May be linked to another groundwater object

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”.

Links: Not linkable

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

Links: Not linkable

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.

Links: May be linked to another groundwater object

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”.

Links: Not linkable

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

Links: Linkable, often to the Head Previous on an Aquifer object below.

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:

Links: Not linkable

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.

Links: Not linkable

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

Links: Not Linkable

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

Links: Not Linkable

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.

Links: Not Linkable

Deep Aquifer Hydraulic Conductivity

Type: Scalar

Units: Velocity

Description: Conductivity to the deep aquifer

Information:

I/O: Required Input

Links: Not Linkable

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

Links: Not Linkable

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

Links: May be linked to the Available Supplemental Water slot in the Agg Diversion Site object.

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

Links: May be linked to the Supplemental Diversion slot on the Agg Diversion Site or Water User.

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

Links: Not linkable

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

Links: Usually linked to the Supplemental Diversion slot on a water user object

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

Links: Usually linked to the Available Supplemental Water on a water user object.

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

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

Links: Linked to the Previous Groundwater Elevation slot on the Agg Diversion Site or Water User object.

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

Links: Not linkable

Previous Groundwater Elevation

Type: SeriesSlot

Units: Length

Description: previous groundwater elevation based upon the Storage Elevation Table

I/O: Output only

Links: Linked to the Previous Groundwater Elevation slot on Agg Diversion Site or Water User object.

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

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

Links: Linked to the response destination objects

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

Links: Not linkable

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

Links: Not linkable

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

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

Links: Usually not linked

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

Links: Not linkable

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

Links: Not linkable

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

Links: Not linkable

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

Links: Not linkable

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

Links: Not linkable

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

Links: Not linkable

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

Links: Not linkable

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

Links: NA

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

Links: NA

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

Links: Can be linked

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

Links: NA

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

Links: NA

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

Links: No

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

Links: NA

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.

Links: Linkable. Typically, this slot is linked to the Surface Area on the Reach directly above this groundwater object

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

Links: These slots are linked to the Elevation Previous slots on each of the connected groundwater objects

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”.

Links: Not linkable

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

Links: Not linkable

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

Links: Yes, linkable to other Flow Factor Left/Right/Upstream/Downstream slots. For example, the Flow Factor Right will be linked to the Flow Factor Left on an adjacent object. RiverWare requires that either all of the Flow Factor slots that are in use in a groundwater network are linked or that none are linked. Otherwise a gain or loss of mass could occur. Linking some Flow Factor slots and not others within a groundwater network will cause the run to abort with an error message.

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.

Revised: 06/03/2019