skip to main content
Account Reference
Accounting
Account Reference
Topics
This section includes the following topics:
Each account has general and method-specific slots. Following is a key for the description.
Slot Name
Type: The type of the slot, including Series, Agg Series, Multi Slot, Scalar, Table, List, or Periodic
Units: The primary unit type. This is the unit type used to store the value internally. If setting the slots with rules or Object Level Accounting Methods, this unit type must be used.
Alternate Units: The alternative unit type used for display purposes. For example, if Flow is the primary unit type, then Volume (over the timestep) is the alternative unit.
Description: A description of the slot.
I/O: Input or Output type. Table 2.1 describes the types.
 
Table 2.1  Input/output types
I/O Types
Description or Example
Flag
Input
A value set directly by the user via the user interface or DMIs. If the slot is linked by a supply, the supplies should be set as user input and will propagate to the connected slots.
I
Account Level Method
The value is set by an Account Level Method. For example, Carryover is set based on the selected Storage Account Carryover method.
m
Account Solution
The value is set by solution of the account. For example, outflow to a passthrough account on a reach is calculated as the sum of the inflow, slot inflow, gain loss and return flow minus the diversion.
A
Propagated
The value is set through propagation of a value across a supply link. The other end of the supply is calculated by a method or the slot is linked to multiple supplies where one or more is set by a rule or input. The summation column of a multislot will have P flag even though individual columns may have an I or R flag.
P
Object Level Accounting Method
The value is set by an Object Level Accounting Method, either compiled or user-defined.
m
Rule
A value may be set by a rule only if there is no supply connecting the slot to another slot. If there is one or more supplies connecting the slot, then the rule must set the supply(ies). The value and flag is reflected in the linked slots’ values as either an R flag (one supply) or a P flag (two or more supplies connected via the multi-slot).
R
Storage Account
A Storage Account represents a legal storage right in a reservoir. It can be used to track the accumulation and release of water that represents that right. Storage accounts are allowed on any of the reservoir objects, including Storage Reservoirs, Level Power Reservoirs, Slope Power Reservoirs, and Pumped Storage Reservoirs.
Storage Account General Slots
Following is a description of the general slots that reside on a Storage Account. Additional slots may be instantiated depending on user methods. See “Account Reference” for descriptions of slot characteristics (Type, Units,...).
Accrual
Type: Series Slot
Units: Volume
Alternate Units: NA
Description: Cumulative volume of inflows to the account from the Begin Accrual Date to the current timestep
I/O: Input (at initial timestep) or Account Solution
Begin Year Allocation
Type: Series Slot
Units: Volume
Alternate Units: NA
Description: Volume allocated to account on begin Accrual Date. This value is then used in the solution equation in place of the previous storage. The begin year allocation allows the user to specify the initial storage for the accrual period.
I/O: Input or Rules
Carry Over
Type: Series Slot
Units: Volume
Alternate Units: NA
Description: Volume of water carried over to the Begin Accrual Date from previous storage
I/O: Input, Rule, or set by the Account Level Method
Diversion
Type: Multi Slot
Units: Flow
Alternate Units: Volume
Description: Water diverted out of the storage account and transferred to a diversion account
I/O: Input or set by a rule
Gain Loss
Type: Series Slot
Units: Volume
Alternate Units: Flow
Description: A loss or gain due to local effects including evaporation, seepage, precipitation. This gain or loss represents this account’s allocation of the physical loss on the reservoir object. A gain is positive, a loss is negative.
I/O: Input, Rule, or Object Level Accounting Method
Inflow
Type: Multi Slot
Units: Flow
Alternate Units: Volume
Description: Water transferred into this account from upstream
I/O: Propagated from upstream
Maximum Accrual1
Type: Series Slot
Units: Volume
Alternate Units: NA
Description: This slot represents the maximum accrual that is allowed during the accrual period. Maximum Accrual is not used in the account solution or in the water rights allocation but is available to hold data for viewing and use in Object Level Accounting Methods and Rules.
I/O: Input or Rule
Outflow
Type: Multi Slot
Units: Flow
Alternate Units: Volume
Description: Water transferred out of this account downstream
I/O: Input or Rule
Return Flow
Type: Multi Slot
Units: Flow
Alternate Units: Volume
Description: Water entering the storage account as return flow from a diversion account
I/O: Input, Rule, or Propagated
Slot Inflow
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: Water added to the account from a local source. This Slot Inflow represents this accounts allocation of the local inflows that enter the reservoir object
I/O: Input, Rule, or Object Level Accounting Method
Storage
Type: Series Slot
Units: Volume
Alternate Units: NA
Description: Storage balance in the account
I/O: Input (at initial timestep) or Account Solution
Transfers In
Type: Multi Slot
Units: Flow
Alternate Units: Volume
Description: Water transferred into this account from another account on the same object
I/O: Input, Rule, or Propagated
Transfers Out
Type: Multi Slot
Units: Flow
Alternate Units: Volume
Description: Water transferred out of this account to another account on the same object
I/O: Input, Rule, or Propagated
Figure 2.1 shows the general slots on the Storage Account. The arrows leading into and out of the account represent supplies. The “m” indicates that the slot is a multi-slot and can be linked to more than one other slot and hence, there are multiple arrows.
Figure 2.1  General slots on the Storage Accounts
Storage Account Solution Equations
For each timestep in the accounting period where there are the required knowns, solve for Storage(t) when Storage(t-1) is known and time(t) is not the Begin Accrual Date.
Required Knowns
• Storage(t-1), Accrual(t-1), Slot Inflow(t), Gain Loss(t),
If time(t) is the Begin Accrual Date, Solve for Storage(t):
Required Knowns
• Storage(t-1), Accrual(t-1), Slot Inflow(t), and Gain Loss(t) if CarryoverAllStorage method is selected. Slot Inflow(t) and Gain Loss(t) if NoCarryover method is selected.
Note:  When the storage is solved in interactive mode, the account solved for as many timesteps as there are required knowns. During a run, the account solves for the current timestep and the following timestep. For models using the water rights solver, the storage account is allowed to solve through the current plus Local Timestep Offset, as defined on the sibling passthrough, to include the effects of lagging in the system. This difference was implemented for performance reasons.
Empty Storage Flag
When setting supply values interactively, you may want to set a supply such that it completely empties a storage account. That is, you want all of the water in that Storage account to move downstream on a particular supply. Although you could type in the correct number or copy and paste the storage into the outflow supply (as a volume), this is error prone and would need to be repeated if other supplies change. Instead, use the Empty Storage Flag, denoted with the letter “E” to perform this operation. This flag computes the supply value that will lead to a zero storage.
Figure 2.2  Edit account dialog showing the Empty Storage Flag for a storage account with one outflow supply
Following are some features of the E flag:
• The flag is associated with a timestep and a supply coming from a storage account. There are no restrictions on the downstream account type. Although it is possible to set the flag on other account’s supplies and accounting slots, it will affect a Storage account when set on exactly one outflow supply.
• When the flag is present on a supply, it computes and sets the supply value necessary to lead to a zero Storage at that timestep.
• The flag should be set on at most one outflow supply of a Storage account at each timestep.
Note:  Setting the flag on more that one supply will lead to undesired behavior; the first supply set will take all of the storage.
• Once set, the E flag remains until explicitly cleared by the user.
• When a storage account unsolves, the E flag remains, the supply value is set to NaN.
Setting the Flag
Interactively, the flag can be set on the supply in the following contexts:
• In the Edit Account dialog for the upstream storage account’s Outflow supplies, using either a right-click context menu or the TimeStep I/O, then Set to Empty Storage menu option.
Figure 2.3  Right-Click context menu to set the Empty Storage Flag
• In the Open Slot dialog for the upstream storage account's Outflow supplies, using either the right-click context menu or the TimeStep I/O, then Set to Empty Storage menu option.
• In the Account Editor dialog for the downstream account, on the Inflow slot, if there is only one incoming supply for that account (and that supply comes from a Storage account).
• In the Open Slot dialog for the downstream account's Inflow slot, if there are more than one incoming supplies for that slot.
• In the Open Slot dialog for a supply, using the TimeStep I/O, then Set to Empty Storage option.
• In the SCT dialog, when the outflow supply is shown, use the Edit, then Empty Storage menu.
The flag cannot be set by a rule. In addition, the flag does not have a priority associated with it, so any rule can overwrite the flag and value.
Removing the Flag
Once set, the E flag remains until explicitly cleared by the user. Remove the flag using the Clear Values operation.
Figure 2.4  Right-click context menu to clear the Empty Storage Flag
Storage Account Level Methods
The account level methods on the Storage Account are described in this section, organized by categories:
Initial Request
This category is used to specify how the storage account calculates the Initial Request in the water rights allocation. The methods in this account are only valid if the account has a water right as specified by the Priority Right method.
* Fill Conservation Pool
This method allows the user to specify that the appropriation of water to this account is the amount of water that it takes to fill the conservation pool. The total volume of paper water in all storage accounts on a reservoir contributes to the conservation pool volume, regardless of the ownership of the water in these accounts.
The amount of water required to fill the conservation pool is calculated as follows: At the beginning of each timestep, the reservoir object determines a value to place in its series slot Conservation Pool Initial Empty Space if that slot does not already have a value for the current timestep.
Note:  The reservoir must have one of the Conservation methods selected in the Operating Levels category.
The value calculated is the amount of inflow needed to fill the conservation pool. This flow is computed by calling the reservoir’s utility function massBalanceSolveInflow() given zero outflow and the elevation of the top of the conservation pool, as defined by the slots Top of Conservation Pool, Operating Level Table, and Elevation Volume Table. The mass balance utility method takes into account all the method selections on the reservoir, including those for evaporation and precipitation, and the current Pool Elevation of the reservoir. The value in the Conservation Pool Initial Empty Space is based on data on the simulation object (i.e. wet water) and does not take into consideration any data on the accounts (paper water).
When the water allocation solver computes the physical constraints applicable to a storage right and when it computes the appropriation request for a storage right that has the Fill Conservation Pool method selected, it starts with the current value of the Conservation Pool Initial Empty Space slot on the underlying Reservoir object. If this value is not defined, and the solver in use is SolveWaterRightsWithLags, the solver will force the reservoir to compute this value. From that value it subtracts inflows, slot inflows, and net transfers in (subtracts transfers in, adds transfers out) to all the storage accounts on the reservoir; the remainder is the inflow that will fill the conservation pool on the reservoir. If this value is less than zero, zero is used. This is the desired initial appropriation request. This initial appropriation request amount is subject to the optional Fill Factor; see Conservation Pool Fill Factor.
Slots Specific to This Method
When the Fill Conservation Pool method is selected, the following slots are added.
Initial Request
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: The water rights initial appropriation request. This is how much water the right wishes to take from allocatable flow with legal and physical constraints applied. This slot is given the value of the Appropriation Request slot only when this slot’s value is not defined. Thus, it is meant to be a saved copy of the Appropriation Request slot from the first call to the solver -- note that this use of the Initial Request slot is not consistent with its use on other account types, nor is it consistent with the slot’s use when the Specify Initial Request method is selected.
I/O: Input or Rules
* Fill Conservation Pool with Diversions
This method is similar to the Fill Conservation Pool method, but it allows more water to be requested in order to meet the Initial Requests of Diversion Accounts on Water Users that are directly supplied by this account and its sibling storage accounts. See Fill Conservation Pool for details.
The amount of water required to fill the conservation pool is calculated exactly as for the Fill Conservation Pool method. To this amount is added the sum of all the Initial Request values on all Diversion Accounts supplied by this storage account or by its sibling storage accounts. If this amount is less than zero, zero is used.
From this value it subtracts inflows, slot inflows, and transfers in to all the storage accounts on the reservoir; the remainder is the inflow that will fill the conservation pool on the reservoir and meet diversions. Again, if this value is less than zero, zero is used. This is the desired initial appropriation request. This initial appropriation request amount is subject to the optional Fill Factor; see Conservation Pool Fill Factor.
Slots Specific to This Method
When the Fill Conservation Pool with Diversions method is selected, the following slots are added.
Initial Request
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: The water rights initial appropriation request. This is how much water the right wishes to take from allocatable flow with legal and physical constraints applied. This slot is given the value of the Appropriation Request slot only when this slot’s value is not defined. Thus, it is meant to be a saved copy of the Appropriation Request slot from the first call to the solver -- note that this use of the Initial Request slot is not consistent with its use on other account types, nor is it consistent with the slot’s use when the Specify Initial Request method is selected.
I/O: Input or Rules
* Specify Initial Request
In this method, the user can specify the Initial Request via Input, DMI, or Rules. If one of the non-default methods is selected in the Operating Levels category on the reservoir, the filling the conservation pool will also limit the allocation. This method is then available to further limit the allocation.
Slots Specific to This Method
When the Specify Initial Request method is selected, the following slots are added.
Initial Request
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: The water rights initial appropriation request. This is how much water the right wishes to take from allocatable flow. The solver applies legal and physical constraints to this amount, to produce the Appropriation Request slot value.
I/O: Input or Rules
Shortage
Type: Series Slot
Units: Volume
Description: The difference between the Initial Request and the transfers into the storage account.
I/O: Calculated by an Account Level Method
Conservation Pool Fill Factor
The methods in this category allow a conservation pool to be filled in part (generally in order to allow other storage accounts on the object to receive some of the conservation pool paper-water). Storage Accounts with the Fill Conservation Pool method or the Fill Conservation Pool with Diversions method selected make use of the Fill Factor. This category includes the following methods.
* None
No fill factor is given. 1.0 is used.
* Fill Factor is Scalar
This method allows the user to specify a fixed fill factor in the scalar slot.
Slots Specific to This Method
Fill Factor
Type: Scalar Slot
Units: No Units
Alternate Units: No Units
Description: Fraction of the conservation pool (or conservation pool and diversion requests) to be requested in the Appropriation Request slot. If not defined, 1.0 is used.
I/O: Input
* Fill Factor is Series
This method allows the user to specify a series of fill factors in the slot.
Slots Specific to This Method
Fill Factors
Type: Series Slot
Units: No Units
Alternate Units: No Units
Description: Fraction of the conservation pool (or conservation pool and diversion requests) to be requested in the Appropriation Request slot. If not defined, 1.0 is used.
I/O: Input
Appropriation Request Adjustment
The method in this category is used to specify an adjustment to the appropriation request, which is computed by SolveWaterRights() from the Initial Request and from the state of the network.
* Return Flow Credit
This method causes return flows to be subtracted from the computed appropriation request value before the latter is put into the Appropriation Request slot.
Storage Account Carryover
The methods in this category are executed on the Begin Accrual Date to specify how water is carried over from one year to the next. The Begin Accrual Date is specified in the Water Accounting System configuration.
* No Carryover
Zero Storage is carried over from one year to the next.
* Carryover All Storage
All Storage is carried over from one year to the next.
* Pooled Carryover
This is a specific method for a reservoir with a storage account named “Pooled”. It carries over all of the water in the Pooled account but removes any Begin Year Allocation in other accounts on the object with the same water type.
Subordination of Right
The method in this category allows an exception to the strict prior-appropriation priority determination to be respected by SolveWaterRights().
* Subordinate Senior Rights
This method is used to specify that a downstream senior right may have to give up water in the event that this right would be shorted. More than one downstream senior right may be subordinated to this right, in which case, the subordinates give up water to satisfy this right in order of their relative priorities. This method is used to specify that a downstream senior right may have to give up water in the event that this right would be shorted.
Slots Specific to This Method
Subordinated Rights
Type: List slot of Accounts
Units: No Units
Alternate Units: NA
Description: This list slot holds the set of downstream senior rights that are subordinated to this right.
I/O: Input
Water Right
Methods in this category specify whether the account has a water right.
* None
No water right.
* Priority Right
When selected, this account will have a water right. Selecting this method is identical to checking the Has Priority Date toggle in the account configuration, General tab.
Slots Specific to This Method
The following slot is added when this method is selected.
Appropriation Request
Type: Series slot
Units: Flow
Alternate Units: Volume
Description: A result of the water rights allocation solver. This is the amount of allocatable flow that the water rights solver will try to appropriate to this account. This slot is given a value that is derived from the initial request, reduced by any applicable legal and physical constraints.
I/O: Rule
Water rights may be subject to physical and legal constraints on their initial requests for water. The net requested water, after such constraints are applied, is put into the Appropriation Request slot by the water rights solver. Storage accounts are subject to one or both of the following physical constraints:
– The appropriation may not cause the conservation pool to overflow.
– If the appropriation is also a diversion, the appropriation may not exceed the physical capacity of the diversion structure.
The conservation pool constraint uses the Conservation Pool Initial Empty Space slot on the reservoir; see “Fill Conservation Pool” for a description of how that slot is calculated. If the reservoir’s Conservation Pool Initial Empty Space slot is not available, because no method that uses it is selected, this physical constraint is not applied.
The water rights solver rule function, SolveWaterRights (or SolveWaterRightsWithLags) assigns a flow to a supply for a water right; this flow might be less than is requested in the Appropriation Request slot. Table 2.2 describes the reasons the solver allocates what it does. These values may be combined with the OR operative.
Slots Specific to This Method
Temp Reason
Type: Series slot
Units: None
Alternate Units: NA
Description: This temporary slot encodes diagnostic information about the reason why the account is allocated the amount that it is given by the water rights solver.
I/O: Output only
 
Table 2.2   
I/O Types
Allocation is limited by
Description
0000000001
Initial Request, which was input.
 
0000000002
Initial Request, which was to fill the conservation pool.
Conservation Pool Initial Empty Space minus the sum of all storages in sibling storage accounts (converted to flow) is the upper bound applied. Storage accounts only.
0000000010
Min Bypass criteria
Min Bypass criteria are reflected in the Appropriation Request.
0000000020
Appropriation Request adjustment was applied
Return flows reduce the Appropriation Request.
0000000040
Max Accrual
Not yet implemented.
0000000100
Conservation Pool capacity
May apply when Initial Request is Input
Temp Available For Shared Priority
Type: Series slot
Units: Flow
Alternate Units: Volume
Description: A result of the water rights allocation solver. When the Share Proportionally with Limits method is selected in the Account Equal Priority Allocation method category on the computational subbasin, this slot is instantiated. If this account has a priority date equal to other accounts this slot is populated with the amount of water available to this account independently of the other shared priority accounts at the time water is allocated. This value is used in the calculations that ultimately allocate water to the shared accounts; see “Water Rights Allocation”for details.
I/O: Rule
Min Bypass
This method in this category is executed as part of a prioritized water rights allocation.
* None
No minimum bypass is defined for this account.
* Fraction of Flow Above Min
This method models a legal constraint that may reduce a water right’s initial request for water by forcing the water right to leave a certain amount of water in the stream at a given reference location.
Slots Specific to This Method
The following slots are added for this method.
Bypass Reference Location
Type: List
Units: NA
Alternate Units: NA
Description: Optional, control point at which you wish to keep a minimum bypass in the stream. If a control point is not specified in this slot, the accounting flow in the linked object will be used.
I/O: Input only, only one control point can be specified
Absolute Min Bypass
Type: Periodic
Units: TIME vs Flow
Alternate Units: NA
Description: The required flow that must remain in the stream
I/O: Input only
Fraction above Min
Type: Periodic
Units: Time vs none
Alternate Units: NA
Description: The fraction of the flow above the Absolute Min Bypass that must be left in the stream
I/O: Input only
Method Details
The requirement contains two components, the Absolute Min Bypass and the Fraction above Min.
 
Example 2.1  Some ways the Fraction above Min method calculates flow
• A legal requirement says to leave 300cfs in the stream. Input the following: Absolute Min Bypass = 300cfs, Fraction above Min = 0.
• A legal requirement says to leave 45% of the flow in the stream. Input the following: Absolute Min Bypass = 0cfs, Fraction above Min = 0.45.
• A legal requirement says to leave 300cfs plus 45% of the flow above that minimum in the stream. Input the following: Absolute Min Bypass = 300cfs, Fraction above Min = 0.45.
This method is used to specify the flow to leave in the supply chain. This location can be specified in two ways depending on whether a control point is specified in the Bypass Reference Location:
• If the there is a control point specified in the Bypass Reference Location, the accounting flows on that object will be used.
• If there is no control point specified in the Bypass Reference Location, then the accounting flows on the object supplying the allocation will be used. That is, for an allocation to a storage account, the amount available for appropriation from the passthrough accounts on the reservoir will be used.
The required bypass flow is calculated using the:
• Sum of Temp Available for Appropriation slot for all passthrough accounts on the object (non-control points), or
• Sum of Outflow for all passthrough accounts at the control point reference location.
If the reference location is downstream, then any lags and/losses are applied so that the min bypass constraint includes enough water to meet the min bypass at the reference location. Then, the constraint (i.e. upper limit on the appropriation) is temporarily stored in the Temp Min Bypass Constraint slot on the diversion account but is not saved with the model file.
Diversion Account
The diversion account represents a legal diversion right from a reach, distribution canal, or reservoir. Diversion Accounts can be created on Water User and Agg Diversion Site objects. On Agg Diversion Sites, Diversion Accounts are allowed on the aggregate or the water user elements based on the linking structure (i.e. the Link Structure menu). The following are the limitations:
• No Structure. Diversion Accounts are allowed on the Water User elements, but not the aggregate.
• Sequential Structure. Diversion Accounts are allowed on either the Water User elements or the aggregate, but not both.
• Lumped Structure. Diversion Accounts are allowed on the aggregate, but not the Water User elements.
These limitations are enforced when creating accounts, but you can switch linking structures after creating the accounts. A warning message is displayed when you switch structures and have invalid accounts. The invalid accounts remain but are not saved in the model. During the saving process, a red message warns of any invalid accounts that have not been saved.
Diversion Account General Slots
See “Account Reference” for descriptions of slot characteristics (Type, Units,...).
Accrual
Type: Series Slot
Units: Volume
Alternate Units: NA
Description: Cumulative volume of water depleted from the Begin Accrual Date to the given timestep
I/O: Account Solution
Depletion
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: Water consumed by the given account
I/O: Input, Rules, Object Level Accounting Method, or Account Solution
Diversion
Type: Multi Slot
Units: Flow
Alternate Units: Volume
Description: Water Diverted from a passthrough or storage account on another object.
I/O: Input, Rules, Object Level Accounting Methods
Maximum Accrual
Note:  This slot is not yet used by SolveWaterRights().
Type: Series Slot
Units: Volume
Alternate Units: NA
Description: This slot represents the maximum accrual that is allowed during the accrual period. Maximum Accrual is not used in the account solution or in the water rights allocation but is available to hold data for viewing and use in Object Level Accounting Methods and Rules.
I/O: Input or Rules
Figure 2.5 shows the general slots on the Diversion Account.
Note:  ReturnFlow and Returned Flows are not general slots, but are based o the selected Route and Split method (see “returnFlow” and “Returned Flows”). They are shown here because they can be linked. The arrows leading into and out of the account represent supplies. The “m” indicate that the slot is a multi-slot and can be linked to more than one other slot and hence, there are multiple arrows.
Figure 2.5  General slots on Diversion Account
Diversion Account Solution Equations
Diversion accounts solve for Depletion and/or return flow when Diversion is known. Return flows may be lagged by an integral number of timesteps or using an impulse response approach, based on the selected Return Flow Route or Split method. See “Depletion”, “Diversion”, and “Return Flow Route or Split”.
Required Knowns
• Diversion
The Diversion Account has two categories whose methods influence the solution of the account:
Figure 2.6 shows the structure and the flow of information each selection:
Figure 2.6  Diversion Account structure
Thus, the solution of the diversion account proceeds as follows:
Execute the selected method in the Return Flow Calculation category. This will typically compute a temporary variable called tempReturnFlow[t]. See “Return Flow Calculation” for descriptions of these methods. If not already known, compute Depletion[t]:
Then, if it is not the Begin Accrual Date:
If it is the Begin Accrual Date
Execute the selected method in the Return Flow Route or Split category. These methods take the tempReturnFlow[t] and route it and/or split it. The result is set in the returnFlow or Returned Flows slot. See “returnFlow” or “Returned Flows”, and “Return Flow Route or Split” for details.
Diversion Account Level Methods
The account level methods on the Diversion Account are described in this section, organized by categories:
Initial Request
The methods in this category specify how the diversion account calculates the Initial Request in the water rights allocation. These methods are valid only if the account has a water right as specified by the Priority Right method.
* None
No initial request is necessary or specified. This is the default.
* Specify Initial Request
Slots Specific to This Method
When the Specify Initial Request method is selected, the following slots are added.
Initial Request
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: The initial water rights appropriation request. This amount is used by the water rights solver to compute the Appropriation Request slot value. The Initial Request is the amount of water this right would like to appropriate, without consideration of physical and legal constraints such as the capacity of the diversion structure, or accrual maximums.
I/O: Input or Rules
Shortage
Type: Series Slot
Units: Volume
Description: The difference between the Initial Request and the diversions coming into the account.
I/O: Account Method
This method allows the user to specify the initial appropriation request for use in a prioritized water rights allocation.
* Disaggregated by Subbasin
The initial request is calculated from annual values.
Slots Specific to This Method
The following slots are added for this method.
Initial Request
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: The initial water rights appropriation request
I/O: Input or Rules
Shortage
Type: Series Slot
Units: Volume
Alternate Units: Flow
Description: The difference between the Initial Request and the diversions coming into the account.
I/O: Account Method
Annual Request
Type: Series Slot, 1 Year timestep
Units: Flow
Alternate Units: Volume
Description: The aggregated annual request values from which the Initial Request values will be derived by a computational subbasin at the beginning of a run.
I/O: Input. Required if this method is selected.
Annual requests are disaggregated to this model’s timestep according to the values specified in the computational subbasin. This method is executed from the computational subbasin at the beginning of the run. See “Account Initial Request” in Objects and Methods for additional information.
* Max Permitted
The initial request is assumed to be unbounded, so that the resulting Appropriation Request slot value is the maximum amount permitted by all other constraints, such as the amount of water available in the supply chain, physical constraints such as diversion structure capacity, and legal constraints such as minimum bypass, and not shorting downstream senior accounts, unlike the calculations of Appropriation Request with all other method selections. The Initial Request and Shortage slots are not made available when this method is selected. When this method is selected, the permitted appropriation is left in the Appropriation Request slot, but no appropriation is made.
Return Flow Calculation
The Return Flow Calculation category allows the user to specify how the return flow to the account is specified or computed. It also indicates how the account should solve based on the knowns and unknowns. In each case, the methods set the temporary variable tempReturnFlow[t]. This variable is then split and/or routed according to the method selected; see “Return Flow Route or Split” for details.
* Diversion Minus Depletion
This method assumes that either Diversion and Depletion or Diversion and returnFlow are known. Then, the other is solved for. See “Diversion”, “Depletion”, and “returnFlow” for details.
If Depletion is known, compute the temporary variable tempReturnFlow[t]:
If returnFlow[t+lag] is known, solve for tempReturnFlow[t] (this is only valid if using the Simple Lag method; if not an error will be issued). See “Simple Lag”.
If neither returnFlow[t+lag] nor Depletion[t] is known, assume that diversion will equal depletion, and compute the temporary variable tempReturnFlow[t]:
Then, the tempReturnFlow[t] is split and/or routed according to the selected method in the Return Flow Route or Split method.
Note:  See “Return Flow Route or Split” for additional information.
* Specify Return Flow
This method allows the user to input the returnFlow. This method is only valid if using the Simple Lag method; if not an error will be issued. See “returnFlow” and “Simple Lag”.
If returnFlow[t+lag] is known, compute the temporary variable tempReturnFlow[t]
If returnFlow[t+lag] is unknown, compute the temporary variable tempReturnFlow[t]
Then, the tempReturnFlow[t] is split and/or routed according to the selected method in the Return Flow Route or Split method.
Note:  See “Return Flow Route or Split” for additional information.
* Fractional Return Flow
This method allows the user to input a constant fraction of the diversion that is returned.
Slots Specific to This Method
Fraction of Diversion
Type: Scalar Slot
Units: None
Alternate Units: NA
Description: Fraction of the Diversion that is returned
I/O: Input Only
This method computes the temporary variable tempReturnFlow[t]:
Then, the tempReturnFlow[t] is split and/or routed according to the selected method in the Return Flow Route or Split method.
Note:  See “Return Flow Route or Split” for additional information.
* Variable Fractional Return Flow
This method allows the user to input a series slot that contains the fraction of diversion that is returned.
Slots Specific to This Method
Variable Fraction of Diversion
Type: Series Slot
Units: None
Alternate Units: NA
Description: Fraction of the Diversion that is returned
I/O: Input Only
This method computes the temporary variable tempReturnFlow[t]:
Then, the tempReturnFlow[t] is split and/or routed according to the selected method in the Return Flow Route or Split method.
Note:  See “Return Flow Route or Split” for additional information.
* Variable Efficiency Return Flow
This method allows the user to compute the return flow as a function of the specified Maximum Efficiency, Depletion Requested and Diversion.
Slots Specific to This Method
Depletion Requested
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: Desired amount of water to be consumed by the diversion account
I/O: Input or Rules
Efficiency
Type: Series Slot
Units: Fraction
Description: The computed efficiency.
I/O: Output only
Maximum Efficiency
Type: Scalar Slot
Units: Fraction
Description: The maximum possible efficiency. It is also the default efficiency if there is no Depletion Requested. Must be between 0 and 1.0 inclusive. See “Depletion Requested”.
I/O: Required Input
Method Details
When Depletion Requested is known, Efficiency is computed as follows. See “Efficiency”.
If Depletion Requested is not known, Efficiency is equal to the Maximum Efficiency:
Depletion is computed as follows. See “Depletion”.
A temporary variable tempReturnFlow[t] is computed:
Then, the tempReturnFlow[t] is split and/or routed according to the selected method in the Return Flow Route or Split method.
Note:  See “Return Flow Route or Split” for additional information.
Return Flow Route or Split
The Return Flow Route or Split category allows the user to specify if and how return flows will be split and/or routed. It has two methods: Simple Lag and Split and Route. When switching between these two methods, RiverWare must delete any existing supplies that link returnFlow or Returned Flows. See “Simple Lag”, “Split and Route”, “returnFlow”, and “Returned Flows” for details.
If there is only one supply, a new supply will be created to the new slot. If there are multiple supplies, then no supplies will be re-created. Any input data on the supply will be lost. When you switch methods, a warning dialog will be posted to describe what will happen.
* Simple Lag
This default method uses simple time lag that uses an integer number of timesteps.
Slots Specific to This Method
returnFlow
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: Amount of diverted water that is not consumed. This water then leaves the Diversion account as returnFlow
I/O: Input, Rules, Object Level Accounting Method, or Account Solution
Return Flow Lag
Type: Scalar Slot
Units: None (no of timesteps)
Description: The integer number of timesteps the returnFlow should be lagged from Diversion. See “returnFlow”.
I/O: If not input, zero will be used
Method Details
In general, the method will lag the internal tempReturnFlow[t] by the specified number of timesteps and set the returnFlow slot in the future. See “Diversion Account Solution Equations” for a description of the full solution approach.
When any routing is considered, multiple dates (timesteps) are involved in the solution. Although tempReturnFlow[t] is a flow, it is converted to a volume in the computation to conserve mass. The result is converted back to flows for the lagged timestep. If the run timestep is a constant size, these flow/volume conversions are not needed nor performed as the length of t is the same as the length of the lagged timestep. The equations become much simpler.
* Split and Route
Any return flow will have Multi Return Lag Coeffs. Then, the routed return flow will be set according to the coefficients. See “Multi Return Lag Coeffs”.
Note:  The Split and Route method cannot be used by a diversion account in a computational subbasin that performs a water rights allocation using the prior appropriation method and water rights solver.
Slots Specific to This Method
Returned Flows
Type: Multi Slot (Accounting Multi Slot)
Units: Flow
Alternate Units: Volume
Description: This slot stores the split and routed return flows.
As supply links are added, columns are added to this multi slot.
I/O: Output only
Multi Return Lag Coeffs
Type: Table Slot
Units: Fraction
Description: There will be one column for each supply to Returned Flows.
The number of columns will be added automatically when the supply links are made. The number of valid values in each column determine the number of coefficients for that supply. These should sum to 1.0 down a column. Columns are not deleted if supplies are deleted.
I/O: Required Input.
PreRouted Return Flows
Agg Series Slot
Units: Flow
Alternate Units: Volume
Description: The return flows before they are routed
This slot is an Agg Series Slot but appears similar to a Multi Slot. If there are multiple supplies to Returned Flows, it has one column for the Total and then one column for each supply to Returned Flows. If there is only one supply, this slot only has one column with no total. The slot will be automatically resized when supplies are added or deleted.
I/O: Output Only during simulation, Input at presimulation timesteps if necessary
Return Flow Proportion
Type: Table Slot.
Units: Fraction
Description: This slot specifies how the split should be made. There is one column for each split/supply. The columns should be automatically added when the supply links to Returned Flows is made. Columns are not deleted if supplies are deleted.
The sum of the values should equal 1.0.
I/O: Required input
Method Details
The solution equation will set the PreRouted Return Flows slot for each column “i” (supply) based on the temporary value tempReturnFlow[t], as follows.
For each split, i.e. each column “i” of the Returned Flows slot and corresponding columns of the PreRouted Return Flows and Multi Return Lag Coeffs slot, the return flow is computed as:
Where C is the appropriate coefficient in the Multi Return Lag Coeffs slot and n is the number of coefficients in the Multi Return Lag Coeffs slot. “ts()” indicates the timestep length of the specified timestep. In both cases, n is computed from the number of valid values in the appropriate column of the Multi Return Lag Coeffs slot.
Note:  Typically in the accounting system, routing sets the current value at an integer number of timesteps in the future. This method is different, here the equations are setting the current Returned Flows using values from previous timesteps. This method then requires that there are PreRouted Return Flows at t-n timesteps to solve. On presimulation timesteps, these should be input or set by a rule.
Subordination of Right
This method allows an exception to the strict prior-appropriation priority determination to be respected by SolveWaterRights().
* Subordinate Senior Rights
This method is used to specify that a downstream senior right may have to give up water in the event that this right would be shorted. More than one downstream senior right may be subordinated to this right, in which case, the subordinates give up water to satisfy this right in order of their relative priorities.
This method is used to specify that a downstream senior right may have to give up water in the event that this right would be shorted.
Slots Specific to This Method
Subordinated Rights
Type: List slot of Accounts
Units: None
Alternate Units: NA
Description: This list slot holds the set of downstream senior rights that are subordinated to this right.
I/O: Input
Water Right
Methods in this category specify whether the account has a water right.
* None
No water right is defined for this account
* Priority Right
When selected, this account will have a water right. Selecting this method is identical to checking the Has Priority Date toggle in the account configuration, General tab.
Slots Specific to This Method
The following slot is added when this method is selected.
Appropriation Request
Type: Series slot
Units: Flow
Alternate Units: Volume
Description: A result of the water rights allocation solver. This is the allocatable flow that is the solver tries to allocate to this account.
I/O: Set by Rule
Method Details
The value in the Appropriation Request slot does not reflect reductions in the allocation to prevent shorting downstream senior rights. It does reflect reductions based on legal constraints (such as minimum bypass) and physical constraints (such as the capacity of the physical diversion structure). See “Diversion from Reach” in Objects and Methods for additional information about the diversion capacity for the reach.
Slots Specific to This Method
Temp Reason
Type: Series slot
Units: None
Alternate Units: NA
Description: This temporary slot encodes diagnostic information about the reason why the account is allocated the amount that it is given by the water rights solver.
I/O: Output only
Method Details
The water rights solver rule function, SolveWaterRights (or SolveWaterRightsWithLags) assigns a flow to a supply for a water right; this flow might be less than is requested in the Appropriation Request slot. Table 2.3 describes the reasons the solver allocates what it does. Some of these values may be OR-ed together. This encoding is subject to change at any time.
 
Table 2.3  SolveWaterRights and SolveWaterRightsWithLags allocation reasons
Temp Reason
Allocation is limited by
Description
0000000001
Initial Request, which was input.
 
0000000003
Initial Request, which was disaggregated by a subbasin.
 
0000000005
Max Permitted method was selected.
No allocation is made. The Appropriation Request reflects the allocation that might have been made had this method not been selected.
0000000010
Min Bypass criteria
Min Bypass criteria are reflected in the Appropriation Request.
0000000040
Max Accrual
Not yet implemented.
0000000050
Max Legal Request
The initial request was larger than the Maximum Legal Request, so it was cutback to the Maximum Legal Request
0000000200
Diversion Capacity at source.
 
0000000400
The available water in the supply chain.
This is the flow in the Allocatable Flow supply chain after higher-priority rights have been satisfied.
0000xxx000
A downstream senior placed a call.
A downstream senior’s call further restricted the allocation (below the Appropriation Request). The priority number of the senior appears in these digits, except that if the priority is zero, the digits show 999.
0xxx000000
A junior placed a call on a senior subordinate.
The priority number of the calling junior appears in these digits. The junior cannot have priority zero.
Temp Available For Shared Priority
Type: Series slot
Units: Flow
Alternate Units: Volume
Description: A result of the water rights allocation solver. When the Share Proportionally with Limits method is selected in the Account Equal Priority Allocation method category on the computational subbasin, this slot is instantiated. If this account has a priority date equal to other accounts this slot is populated with the amount of water available to this account independently of the other shared priority accounts at the time water is allocated. This value is used in the calculations that ultimately allocate water to the shared accounts; see “Water Rights Allocation” for details.
I/O: Rule
Min Bypass
The methods in this category specify whether a minimum bypass is required when making water rights allocations and are executed as part of a prioritized water rights allocation. These methods model a legal constraint that may reduce a water right’s initial request for water by forcing the water right to leave a certain amount of water in the stream at a given reference location.
* None
No minimum bypass is defined for this account.
* Fraction of Flow Above Min
Slots Specific to This Method
The following slots are added for this method.
Bypass Reference Location
Type: List
Units: NA
Alternate Units: NA
Description: Optional, control point at which you wish to keep a minimum bypass in the stream. If a control point is not specified in this slot, the accounting flow in the linked object will be used.
I/O: Input only, only one control point can be specified
Absolute Min Bypass
Type: Periodic
Units: TIME vs Flow
Alternate Units: NA
Description: The required flow that must remain in the stream
I/O: Input only
Fraction above Min
Type: Periodic
Units: Time vs none
Alternate Units: NA
Description: The fraction of the flow above the Absolute Min Bypass that must be left in the stream
I/O: Input only
Method Details
The requirement contains two components, the Absolute Min Bypass and the Fraction above Min.
 
Example 2.2  Possible ways the Fraction above Min method calculates the flow
• A legal requirement says to leave 300cfs in the stream. The following would be input: Absolute Min Bypass = 300cfs, Fraction above Min = 0.
• A legal requirement says to leave 45% of the flow in the stream. Input the following: Absolute Min Bypass = 0cfs, Fraction above Min = 0.45
• A legal requirement says to leave 300cfs plus 45% of the flow above that minimum in the stream. Input the following: Absolute Min Bypass = 300cfs, Fraction above Min = 0.45.
This method is used to specify the flow to leave in the supply chain. This location can be specified in two ways depending on whether a control point is specified in the Bypass Reference Location:
• If the there is a control point specified in the Bypass Reference Location, the accounting flows on that object will be used.
• If there is no control point specified in the Bypass Reference Location, then the accounting flows on the object supplying the allocation will be used. That is, for an allocation to a diversion account from reach, the amount of water available for appropriation from passthrough accounts on the reach will be used.
The required bypass flow is calculated using the:
• Sum of Temp Available for Appropriation slot for all passthrough accounts on the object (non-control points), or
• Sum of Outflow for all passthrough accounts at the control point reference location.
If the reference location is downstream, then any lags and/losses are applied so that the min bypass constraint includes enough water to meet the min bypass at the reference location. Then, the constraint (i.e. upper limit on the appropriation) is temporarily stored in the Temp Min Bypass Constraint slot on the diversion account but is not saved with the model file.
Max Legal Request
Methods in this category allow you to specify the maximum legal request, which then limits the Initial Request.
* No Method
Default, no action method.
* Max Request Series
Slots Specific to This Method
The following slot is instantiated.
Maximum Request
Type: Series
Units: Flow
Description: This is the maximum legal flow that the diversion account can request.
If not input, there is no maximum and the initial request is used directly.
I/O: Optional input
Method Details
The maximum request is applied at the same time as other legal constraints during the step when the solver computes the Appropriation Request. If there is a valid Maximum Request (not NaN), then:
Note:  If the Initial Request and the Maximum Request are less than zero, this method will set the Appropriation Request to zero.
Note:  Additional legal and physical constraints are applied to compute the final Appropriation Request; see “Computing Appropriation Request from Initial Request” for details.
Instream Flow Account
An Instream Flow account represents a legal instream flow right. Instream Flow accounts are only allowed on the control point object.
Instream Flow General Slots
See “Account Reference” for descriptions of slot characteristics (Type, Units,...).
Accrual
Type: Series Slot
Units: Volume
Alternate Units: NA
Description: Cumulative volume of inflows to the account from the Begin Accrual Date to current date.
I/O: Account solution or Input (at the initial timestep)
Flow
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: Flow in the account used to meet the legal flow right. It is calculated as the sum of all inflows into accounts on this object
I/O: Account Solution
Inflow
Type: Multi Slot
Units: Flow
Alternate Units: Volume
Description: Water transferred into the account from upstream
I/O: Propagated
Maximum Accrual2
Type: Series Slot
Units: Volume
Alternate Units: NA
Description: This slot represents the maximum accrual that is allowed during the accrual period. Maximum Accrual is not used in the account solution or in the water rights allocation but is available to hold data for viewing and use in Object Level Accounting Methods and Rules.
I/O: Input or Rules
Outflow
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: Water transferred out of this account downstream
I/O: Account Solution
Figure 2.7 shows the general slots on the Instream Flow Account. The arrows leading into and out of the account represent supplies. The “m” indicate that the slot is a multi-slot and can be linked to more than one other slot and hence, there are multiple arrows.
Figure 2.7  General slots on the Instream Flow Account
Instream Flow Account Solution Equations
The solution equations for the Instream Flow account is as follows:
• The instream flow account always solves for the Flow slot regardless of knowns.
To solve for Outflow and/or Accrual
Required Knowns
• Inflow
– If it is not the Begin Accrual Date
– If it is the Begin Accrual Date
Instream Flow Account Level Methods
The account level methods on the Instream Flow Account are described in this section, organized by categories:
Initial Request
The methods in this category specify how the storage account calculates the Initial Request in the water rights allocation. The methods in this account are valid only if the account has a water right as specified by the Priority Right method.
* None
No initial request is necessary, no appropriation is made, and no slots are added. This is the default method.
* Specify Initial Request
This method allows the user to specify the initial appropriation request for use in a prioritized water rights allocation.
Slots Specific to This Method
When the Specify Initial Request method is selected, the following slots are added.
Initial Request
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: The initial water rights appropriation request
I/O: Required user Input or Rules
Shortage
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: The difference between the Initial Request and the Flow slot.
I/O: Account Level Method
* Based on Reference Level
Slots Specific to This Method
When the Based on Reference Level method is selected, the following slots are added.
Reference Level Stream Flow Table
Type: Periodic
Units: Time vs Flow
Alternate Units: NA
Description: The periodic slot maps the reference level (as columns) from the underlying control point slot to an initial request (flow values in the table).
I/O: Input Only
Shortage
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: The difference between the Initial Request and the Flow slot.
I/O: Account Level Method
Method Details
This method is valid only if the Reservoir Storages Lookup method in the Instream Flow Reference Level category is selected on the containing control point. This method creates a slot called Reference Level which is a slot with a 1 Year timestep, whose value is computed once per year at the date indicated in the Start of Reference Year (also on the containing control point). See “Reservoir Storages Lookup” in Objects and Methods for additional information on the Reservoir Storages Lookup method.
This method is executed at the beginning of the timestep to lookup the current timestep and the Reference Level (on the control point) on the Reference Level Stream Flow Table to determine the Initial Request for the timestep.
Note:  If the current timestep is before the Start of Reference Year, the Reference Level used to compute the Initial Request is that of the prior year. This means that you must input an initial Reference Level if the Start of Reference Year does not coincide with the start of the run.
Water Right
Methods in this category specify whether the account has a water right.
* None
No water right is defined for this account.
* Priority Right
When selected, this account will have a water right. Selecting this method is identical to checking the Has Priority Date toggle in the account configuration, General tab.
Slots Specific to This Method
The following slot is added when this method is selected.
Appropriation Request
Type: Series slot
Units: Flow
Alternate Units: Volume
Description: A result of the water rights allocation solver. This slot gets the value of the initial request slot, since an instream flow account has no other legal or physical constraints that can reduce the appropriation request.
I/O: Rule
Available Allocatable Flow
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: Upper bound on the amount of water an instream flow account can call from a junior account. An instream flow account is not allowed to call more than the allocatable flow in the channel, which quantity is saved in this slot by the water rights solver in SolveWaterRights when the solver’s controlling date is senior to this account, and is used by the water rights solver SolveWaterRights when the solver’s controlling date is junior to this account. The quantity saved in this slot is the outflow from the instream flow account’s sibling passthrough account having the water type given to the solver to identify the allocatable flow supply chain.
I/O: Rule
Temp Reason
Type: Series slot
Units: None
Alternate Units: NA
Description: This temporary slot encodes diagnostic information about the reason why the account is allocated the amount that it is given by the water rights solver.
I/O: Output only
Method Details
The water rights solver rule function, SolveWaterRights (or SolveWaterRightsWithLags) assigns a flow to a supply for a water right; this flow might be less than is requested in the Appropriation Request slot. Table 2.4 describes the various reasons the solver allocates what it does. Some of these values may be OR-ed together. This encoding is subject to change at any time.
 
Table 2.4  SolveWaterRights and SolveWaterRightsWithLags allocation reasons
Temp Reason
Allocation is limited by
Description
0000000001
Initial Request, which was input.
 
0000000004
Initial Request, which was computed by Reference Level
 
0000000040
Max Accrual
Not yet implemented.
0000000400
The available water in the supply chain.
This is the flow in the Allocatable Flow supply chain after higher-priority rights have been satisfied.
0xxx000000
A junior placed a call on a senior subordinate.
The priority number of the calling junior appears in these digits. The junior cannot have priority zero.
1000000000
A junior placed a call on a senior subordinate instream flow right.
 
Passthrough Account
Passthrough accounts provide a means of transferring paper water between legal accounts. A user can look at any object in the model and see the paper water that is passing through that object at any given timestep.
Passthrough accounts can be created on reaches, bifurcations, confluences, diversion objects, control points, reservoirs, and stream gages. Depending on the type of object, passthrough accounts have different slots and therefore different components to the solution equation. Table 2.5 shows the slots that exist on a passthrough account on each of the possible objects.
 
Table 2.5  Passthrough account objects
 
Object Type
Slots on Passthrough Accounts
Reach
Inflow
Slot Inflow
Outflow
Diversion
Gain Loss
Return Flow
Lag Time
Temp Available for Appropriation
Bifurcation Confluence
Inflow
Outflow
Slot Inflow
 
Control Point
Inflow
Outflow
Slot Inflow
 
Diversion
Inflow
Return Flow
Outflow
Temp
Slot Inflow
Temp Available for Appropriation
 
Storage Reservoir
Inflow
Outflow
Slow Inflow
Diversion
Return Flow
Temp Available for Appropriation
Transfers In
Transfer Out
Storage (Optional)
Level Power Reservoir
Inflow
Outflow
Slow Inflow
Diversion
Return Flow
Temp Available for Appropriation
Transfers In
Transfer Out
Storage (Optional)
StreamGage
Inflow
Outflow
Slot Inflow
Transfer In
Transfer Out
 
 
Passthrough Account General Slots
See “Account Reference” for descriptions of slot characteristics (Type, Units,...).
Diversion
Type: Multi Slot
Units: Flow
Alternate Units: Volume
Description: Water leaving the passthrough account to a linked Diversion account
I/O: Input, Rule, or Propagated
Gain Loss
Type: Series Slot
Units: Volume
Alternate Units: Flow
Description: A loss or gain due to local effects including evaporation, seepage, precipitation. This gain or loss represents this account’s allocation of the physical loss on the simulation object. A gain is positive, a loss is negative.
I/O: Input, Rules, Object Level Accounting Method, or Account Solution (if a gain loss coefficient is defined).
Inflow
Type: Multi Slot
Units: Flow
Alternate Units: Volume
Description: Water transferred into this account from upstream
I/O: Propagated
Lag Time
Type: Scalar
Units: time
Alternate Units: NA
Description: Scalar slot defining the lag between net inflows (Inflow, Slot Inflow minus Diversion) and Outflow. See “Instream Flow Account Solution Equations” for lag routing solution detail.
Note: The water rights allocation solver requires that Lag Time be in integral number of timesteps.
I/O: Optional Input
Local Timestep Offset
Type: Scalar
Units: NONE
Alternate Units: NA
Description: Scalar slot used by water rights allocation solver. This slot defines, in number of timesteps after the current run timestep, the timestep on which all water rights solver computations will be done for this account and the accounts it supplies.
I/O: This slot value is computed, when necessary, by the computational subbasin that is used for a water rights allocation solution. It can be input, when desired, for accounts not set automatically. See “Determine the Local Timesteps of the Rights” for additional information on the use of this slot.
Outflow
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: Water transferred out of this account downstream.
Note: This is not a multi-slot. On a passthrough account, there can be zero or one outflow supply leading out of the account
I/O: Typically Account Solution. On storage enabled reservoir account: Account Solution, Input, or Rule
Return Flow
Type: Multi Slot
Units: Flow
Alternate Units: Volume
Description: Water entering the passthrough account as return flow from a diversion account
I/O: Input, Rules, or Propagated
Slot Inflow
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: Water added to the account from a local source. This inflow represents this account’s allocation of the physical local inflows on the simulation object. If there is a non-zero Lag Time on the account, the Slot Inflow must be zero
I/O: Input, Rules, or Object Level Accounting Method
Storage
Type: Series Slot
Units: Volume
Alternate Units: NA
Description: Storage balance in the account. The Storage slot is instantiated only if the Allow Storage toggle is selected in the account configuration. See “Passthrough Account Solution Equations” for details on the solution algorithm when using storage.
I/O: Input, Rules, or Account Solution
Temp Available For Appropriation
Type: Series Slot
Units: Flow
Alternate Units: Volume
Description: Used by the water rights allocation solver to specify the amount available to allocate. Typically, this is the sum of the following account slots: inflows, slot inflows, transfers in, and storage, subtracting diversion and transfers out, each as applicable to the object on which the passthrough resides. For example, storage is only applicable on storage or level power reservoirs for which Allow Storage is activated. It is the Volume in the account before loss and lag are applied and before return flows are added. Temp Available For Appropriation is a temporary slot and is not stored in the model file.
I/O: Account Solution
Transfers In
Type: Multi Slot
Units: Flow
Alternate Units: Volume
Description: Transfers into the account from an account on the same object. This slot is only available on gage and reservoir objects.
I/O: Input, Propagated, or Rules
Transfers Out
Type: Multi Slot
Units: Flow
Alternate Units: Volume
Description: Transfers out of this account to an account on the same object. This slot is only available on gage and reservoir objects.
I/O: Input, Propagated, or Rules
Figure 2.8 shows the slots on the passthrough account. The arrows leading into and out of the account represent supplies. The “m” indicate that the slot is a multi-slot and can be linked to more than one other slot and hence, there are multiple arrows.
Figure 2.8  Slots on the passthrough account
Passthrough Account Solution Equations
The solution equations used for passthrough accounts are determined by the type of object and the configuration of the account. First we discuss the general equation, then look at passthrough accounts with lags and losses, look at passthrough accounts where storage is allowed and finally look at passthrough accounts with an outflow limitation.
General Equation
The components of the equation depend on the type of object on which the passthrough account resides. For example, a passthrough account on a confluence, bifurcation or control point only has the Outflow, Inflow, and Slot Inflow components. See Table 2.5 for the list of the slots on passthrough accounts for each object.
Required Knowns
• Slot Inflow; other unknown variables in the equation will default to zero.
The equation to calculate Outflow is:
(2.1)    
The solution becomes more complicated if the account is on a reach and there are lags or calculated losses or if the account is on a reservoir and storage is allowed. These solutions are described below.
Equations for Passthrough Accounts With Gain Loss Coefficients or Lag Times
Passthrough accounts on Reach objects solve slightly differently if the a gain loss coefficient is defined or the Lag Time is non-zero:
• First, the gain loss coefficient, tempGainLossCoefficient(t) is obtained from the selected Gain Loss Coefficient method. See “Gain Loss Coefficient” for details.
• If the tempGainLossCoefficient is non-zero (and Lag Time is NaN), Gain Loss is calculated as a function of the inflows. Remember that Gain Loss is a volume. The account is then able to solve for Outflow using Equation 2.1.
• If there is a non-zero Lag Time, the solution equations account for the lag.
Note:  If there is a lag defined, Slot Inflow must be zero or an error occurs.
First, if the lag is an integer number of timesteps:
Required Knowns
• Slot Inflow(t) to solve for Outflow(t+lag);
If the tempGainLossCoefficient is non-zero:
Otherwise, GainLoss(t+lag) may be specified (via Input, Object Level Accounting Method, or Rules) or it defaults to zero. The Inflow, Slot Inflow (must be zero) and Diversion all occur before the lag, Gain Loss and Return flow occur after the lag(i.e. on the lagged timestep). Outflow is calculated as:
If the lag is not an integer number of timesteps.
Required Knowns
• Slot Inflow(t) and Inflow(t-1) to solve for Outflow(t+lagInt);
The lag is broken up into an integer number of timesteps (lagInt) and two fractions (lagFrac1 and lagFrac2) representing the flow that occurs on the two adjacent timesteps.
If the tempGainLossCoefficient(t) is non-zero:
Otherwise, GainLoss(t+lag) must be specified (via input, Object Level Accounting Method, or rules) or it defaults to zero. The Outflow is then calculated as:
Equation if Storage is Allowed
If the passthrough account is on a reservoir object, then the user has the option to allow storage. Storage is only allowed when the user enables the Allow Storage toggle in the account configuration. Storage is intended to be used on a temporary basis. If outflow is assigned by the user or a rule, a storage value may be calculated and set in the storage slot for a given timestep. On the next timestep, the account solves to try to make storage equal to zero. The purpose of allowing storage is that some reservoirs have constraints that limit the total water that can be released. Because this constraint limits outflows, accounting water must be stored until it can be physically released from the reservoir. The following procedure is used.
Note:  In this case, Inflow must be known; it does not default to zero. Also note, unlike a reach, a lag or gain loss coefficient is not allowed on a reservoir passthrough account. Therefore all calculations occur at a given timestep (except where indicated) and Gain Loss cannot be calculated by an account level method (although it can be calculated by an object level accounting method).
Required Knowns
• Inflow and Slot Inflow; other unknown variables in the equation will default to zero.
– If both Storage and Outflow are unknown, Storage remains unknown and Outflow is calculated. This is similar to the general equation except the entire previous storage is released.
– If Outflow is known and Storage is unknown, Storage is calculated:
– If Storage is known and Outflow is unknown, Outflow is calculated:
– If both Storage and Outflow are known, an error is issued.
Equation if the Scalar Max Outflow Method is Selected
On a reach passthrough account with the Scalar Max Outflow method selected (in the Outflow Limitation category), the following equation is used. See “Scalar Max Outflow” and “Outflow Limitation” for details.
Required Knowns
• Slot Inflow; other unknown variables in the equation will default to zero.
The remaining water is set on the diversion supply.
There must be exactly one diversion supply. Therefore, the Diversion slot value is identical to the value in the diversion supply. Lag, gain loss, and return flow are NOT allowed. This is checked at run time.
Passthrough Account Level Methods
The account level methods on the Passthrough Account are described in this section, organized by categories:
See “Object Level Accounting Methods (OLAMs)” for information on the compiled and user-defined Object Level Accounting Methods available on passthrough accounts.
Gain Loss Coefficient
This category is available on reaches. Methods in this category determine the type of slot in which gain loss coefficients are entered.
* Constant Gain Loss Coefficient
Under this method, a scalar slot is added where a single non-time varying gain loss coefficient can be specified.
Slots Specific to This Method
Gain Loss Coefficient
Type: Scalar
Units: Decimal
Alternate Units: NA
Description: If defined, this scalar value is multiplied by the passthrough account’s flow (routed Inflows plus Slot Inflow minus Diversion) to calculate Gain Loss
I/O: Optional Input
* Variable Gain Loss Coefficient
Selecting this method provides a series slot for the entry of gain loss coefficients.
Slots Specific to This Method
Variable Gain Loss Coefficient
Type: Series
Units: Decimal
Alternate Units: NA
Description: Coefficients applicable to individual timesteps can be entered. If defined for the timestep, the coefficient value is multiplied by the passthrough account’s flow (routed Inflows plus Slot Inflow minus Diversion) to calculate Gain Loss
I/O: Optional Input
* Periodic Gain Loss Coefficient
Under this method, a periodic slot is provided for the entry of gain loss coefficients.
Slots Specific to This Method
Periodic Gain Loss Coefficient
Type: Periodic
Units: Decimal
Alternate Units: NA
Description: Coefficients can be entered by the periods specified in the slot. If defined for the period, the coefficient value is multiplied by the passthrough account’s flow (routed Inflows plus Slot Inflow minus Diversion) to calculate Gain Loss. By default, the slot is configured to Lookup. It can be configured to Interpolate.
I/O: Optional Input
Outflow Limitation
This category is available on reaches.
* None
No outflow limitation is defined.
* Scalar Max Outflow
The passthrough will limit the outflow to the max outflow and send the remaining water to the diversion supply. One sample use of this method is when you want to send all of the water in a supply chain to a single diversion account. You can set the Max Outflow to zero. There is no need to set the diversion supply as it will be set when the passthrough solves.
Slots Specific to This Method
Max Outflow
Type: Scalar
Units: Flow
Description: The maximum that can flow through the Outflow supply.
I/O: Required Input or error
Method Details
When this method is selected, the passthrough account solution equations limit the Outflow to the Max Outflow. Remaining water goes to the linked diversion supply. See “Equation if the Scalar Max Outflow Method is Selected” for descriptions of the solution equations.
There are a few limitations with this method:
• There must be exactly one Diversion supply coming off the passthrough account. This will be checked at run time.
• The Max Outflow method only applies to a single passthrough account, not the entire object.
• This method can be used in a SolveWaterRights algorithm but the linked diversion supply cannot be used to meet a water right. In that case, the passthrough account would be overdetermined as both the solver and this account would be trying to set the diversion supply.
Negative Flow Appropriation
This category is available on reaches, reservoirs and control points. It affects how the water rights solver deals with negative flows. See “Water Rights Allocation” for details.
* None
At the time of allocation, any negative flows will lead to an error.
* Allow Negative Flows
The passthrough account method (Allow Negative Flows) will allow the user to specify that negative flows are allowed in the supply chain during water right allocation. It will also add the following slot necessary for the proposed changes.
Slots Specific to This Method
Temp Available Before Appropriation
Type: Series
Units: Flow
Description: The flow available for appropriation before visiting a water right.
This slot is only used within the water rights solver; it is not returned to the calling rule. As a result, it will never show any values in it and could be made invisible to the user (if that were supported on the Open Account dialog).
I/O: Output only
 

1 Maximum Accrual is not yet used by SolveWaterRights()

2 Maximum Accrual is not yet used by SolveWaterRights().

Revised: 06/03/2019