Accounting

Basin-specific Object Level Accounting Methods (OLAMs)

This document describes object level accounting methods specific to the Rio Grande model. In general, each account in this model has a water type of either “RioGrande” or “SanJuan.” In addition, there is often an account on the object name “RioGrande”. The categories and methods in the remainder of this document describe the logic used to allocation water to Slot Inflow and Gain Loss to these typed or named accounts.

Topics

Confluence Account Slot Inflow Category

The confluence has the following Rio Grande specific Slot Inflow method. See “Rio Grande Inflow 2” for details.

Rio Grande Inflow 2

This method sets the Slot Inflow for accounts with water type “RioGrande” proportionally to the Inflow to the account. All Slot Inflows on accounts with water type “SanJuan” are set to 0.0

The logic is follows:

Get a list of all the Inflow slots on accounts with water type RioGrande.

Register each as a RPL dependency.

Get a list of all the Slot Inflows slots on accounts with water type RioGrande.

RioGrandeInflowSUM = Sum of RioGrande Inflows

If the RioGrandeInflowSUM is zero, then divide Inflow 2 equally to all Rio Grande accounts.

Otherwise, for each account of water type RioGrande:

Get a list of all the Slot Inflow slots on accounts with water type SanJuan

Set all SanJuan Slot Inflows to 0.0.

Reach Account Slot Inflow Category

The reach has the following Rio Grande-specific Slot Inflow methods:

Reconcile Rio Grande Outflow

This method computes the total accounting Slot Inflow to reconcile the physical and accounting flows based on the water type of the accounts. Accounts with water type “SanJuan” have their Slot Inflows set to 0.0cfs. The remaining total reconciliation water is then proportioned to the Slot Inflow on accounts with the RioGrande water type. The logic is as follows.

Get a list of all the Inflow slots on accounts with water type RioGrande. and register each as a dependency

RioGrandeInflowSUM = Sum of RioGrande Inflows

Get a list of all the Slot Inflows slots on accounts with water type RioGrande.

Get a list of all the Slot Inflow slots on accounts with water type SanJuan.

Get a list of all the Outflow slots on accounts with water type SanJuan and register each as a dependency

SanJuanOutflowSUM = Sum of SanJuan Outflows

Get the Reach.Outflow (this includes the physical loss)

If the RioGrandeInflowSUM is zero, then divide any Slot Inflows equally to all Rio Grande accounts.

Otherwise, for each account with water type RioGrande:

Set Slot Inflows on accounts with water type SanJuan to 0.0.

Rio Grande Local Inflow

This method sets all Local Inflow to the Slot Inflow on the account name “RioGrande.” All accounts with Water type SanJuan are given zero Slot Inflows.

Following is the logic to compute the Slot Inflow on the Rio Grande account.

Get the single passthrough account named “RioGrande”

Get the RioGrande Slot Inflow slot

Set the RioGrande.Slot Inflow = Local Inflow (if Local Inflow is in use and valid)

Get a list of all the SanJuan Slot Inflow slots

Set all SanJuan Slot Inflows to 0.0.

Reservoir Account Gain Loss Category

The primary purpose of methods in this category is to set the Gain Loss slots on reservoir accounts. They also set values on additional slots as described within each method description. The following methods are described in this section:

Abiquiu, Cochiti and Jemez Gain Loss

Abiquiu, Cochiti and Jemez reservoirs each have their own Gain Loss Calculation method; however, all three methods function the same, as described below.

These methods are currently configured to function correctly for 1 Day and 1 Month timesteps only. In order for these methods to solve for Account Gain Loss, values such as Surface Area, Evaporation and Precipitation Volume must be know (solved for by simulation); therefore, the execution time must be set to After Simulation.

These methods calculate the total San Juan losses as the difference between the Present Condition Loss and the Hypothetical Condition Loss. The Hypothetical Condition represents the state of the reservoir assuming only Rio Grande water is present, with no San Juan water. The total San Juan loss is then distributed to all San Juan accounts proportional to the storage in each account at the end of the previous timestep. This allows the San Juan Storages to solve at the current timestep.

All other loss goes to the Rio Grande accounts. The temporary total Rio Grande loss is calculated as the difference between the Hypothetical Condition Loss and the Pre-Reservoir Condition Loss. If the reservoir has a RioGrandeConservation account, and the account has water, then it takes a fraction of the loss equal to its percentage of total Rio Grande water in the reservoir. All remaining loss goes to the RioGrande account.

This allows RioGrandeConservation.Storage to solve if the reservoir has a RioGrandeConservation account. Then the Gain Loss for the RioGrande account can be calculated.

See “Slots Specific to These Methods” for details of the individual components. See “Steps Carried Out by the Abiquiu, Cochiti and Jemez Gain Loss Methods” for the steps that each of these methods carry out.

Slots Specific to These Methods

Selecting the Abiquiu, Cochiti or Jemez Gain Loss method instantiates the following slots.

Carryover Content

Type: Series Slot

Units: Volume

Description: The volume designated as Carryover storage

Information: This value will only be non-zero if the Locked In slot has a value of 1 (reservoir is locked in). Values in this series slot are the same as the values in the Rio Grande Pools slot, Carryover Content column. If the initial timestep value on this slot is not known, but the value on the Rio Grande Pools slot Carryover Content column t is known, the table series slot value is copied to the series slot at the initial timestep and set as an input.

I/O: Initial value Input, run timesteps are Output

Links: No

Conservation Gain Switch

Type: Series Slot

Units: None

Description: A binary switch indicating whether any gains at the timestep can be allocated to the RioGrandeConservation account.

Information: This slot value must be either 1 (gains can be allocated to RioGrandeConservation) or 0 (no gains allocated to RioGrandeConservation). If this value is not input or set by a rule, it defaults to zero

I/O: Optional Input

Links: No

Control and PreRes Areas

Type: Table Slot

Units: Area, Area, Area, Area, Area, Area

Description: The table contains a one row and six columns, one for each of the following: Control Area, Pre-Res Barren Area, Pre-Res Irrigated Area, Pre-Res Meadow Area, Pre-Res River Area, Pre-Res Lake Area

Information: The areas in this table are used for calculating losses for prereservoir conditions.

I/O: Required Input

Links: No

Effective Precip

Type: Series Slot

Units: Volume

Description: The effective precipitation calculated for the given timestep.

Information: The total accumulated precipitation depth for the month is used to calculate the accumulated effective precipitation for the current day and the previous day. The difference is the Effective Precip for the current day. For a 1 Month timestep, the effective precipitation is calculated from the total precipitation for the current timestep.

I/O: Output

Links: No

Effective Precipitation Table

Type: Table Slot

Units: Length, Fraction, Length

Description: The relationship between total accumulated precipitation depth for the month and the amount considered effective precipitation.

Information: The first column gives a depth of monthly precipitation. The second column gives the fraction of that precipitation depth that is considered effective precipitation. The third column contains the accumulated effective precipitation value corresponding to the precipitation in the first column. Linear interpolation is used to calculate the effective precipitation depth based on the total precipitation depth for the month. Only the first and third columns are actually used in the interpolation. The second column is only for reference.

I/O: Required Input

Links: No

Hold Pool

Type: Series Slot

Units: Volume

Description: The sum of the total San Juan storages, Carryover Content and Accumulated Permanent Sediment

Information: This value is calculated at the end of the accounting method after all account storage values are known.

I/O: Output

Links: No

Hypothetical Lake Elev River Area Table

Type: Table Slot

Units: Length, Area

Description: Relationship of Hypothetical River Area to Hypothetical Lake Elevation

Information: This table is used to calculate river area for hypothetical conditions

I/O: Required Input

Links: No

Incidental Content

Type: Series Slot

Units: Volume

Description: All Rio Grande storage that is not designated as Carryover storage or Conservation storage.

I/O: Output

Links: No

Locked In

Type: Series Slot

Units: None

Description: A binary switch indicating if the reservoir can have water designated for Carryover Content

Information: This slot value must be either 1 (Locked In, can have Carryover storage) or 0 (no Carryover storage)

I/O: Required Input

Links: No

Net Loss Adjustment

Type: Series Slot

Units: Volume

Description: The difference between the Physical Model Net Loss and the losses calculated by the accounting method

Information: If this value is positive the physical model loss was greater than the accounting method loss

I/O: Output

Links: No

Physical Model Net Loss

Type: Series Slot

Units: Volume

Description: The net loss from the simulation methods (Evaporation - Precipitation).

Information: A positive value represents a net loss

I/O: Output

Links: No

PreRes Irrigated Area Loss Rate

Type: Series Slot with Periodic Input

Units: Velocity

Description: The loss rate over irrigated area before the reservoir existed

Information: This value is used for calculating losses for prereservoir conditions.

I/O: Required Input

Links: No

PreRes Meadow Area Loss Rate

Type: Series Slot with Periodic Input

Units: Velocity

Description: The loss rate over meadow area before the reservoir existed

This value is used for calculating losses for prereservoir conditions.

I/O: Required Input

Links: No

Present Lake Elev River Area Table

Type: Table Slot

Units: Length, Area

Description: Relationship of River Area to Pool Elevation

Information: This table is used to calculate river area for present conditions

I/O: Required Input

Links: No

Volume Added to Carryover Storage

Type: Series Slot

Units: Volume

Description: This volume is added to the Carryover Content at the timestep.

Information: If this value is not input or set by a rule, it defaults to zero.

I/O: Optional Input

Links: No

Table Series Slots Set by This Method

The following table series slots are also set by this method. Details of each column value are given at the end of the method description. See the following topics:

Steps Carried Out by the Abiquiu, Cochiti and Jemez Gain Loss Methods

All three methods (Abiquiu, Cochiti or Jemez Gain Loss method) carry out the following steps.

1. Check for previous Storage and Accrual on all accounts.

2. Call the selected Sediment Transport method to calculate Accumulated Perm Sediment.

Note: See “Sediment Transport” for a description of the Sediment Transport methods.

3. Get lists of each type of account slot by water type.

4. Register account Inflow and Outflow slots as dependencies.

Calculate Effective Precipitation

For a 1 Month timestep, this can be done based on the Precipitation Volume for the month, which will have been set in simulation. The Precipitation Volume calculation will already account for Ice Coverage if applicable. For a 1 Day timestep, Effective Precipitation must be calculated using the cumulative sum of Precipitation Rate from the beginning of the month to the current day, and Ice Coverage is included explicitly. At a 1 Month timestep the average surface area is used, whereas the current (end of timestep) surface area is used for a 1 Day timestep.

IF isMonthly

ELSE

END IF

Calculate the evaporation depth and effective precipitation depth to use in loss calculations

For all following calculations, Area values for a 1 Day timestep are current (end of timestep) areas. For a 1 Month timestep, Area values are averages of the end of the previous timestep and end of the current timestep values, similarly for Ice Coverage. If Ice Coverage is not applicable based on the selected evaporation method, it is zero in the calculations below.

If the Surface Area is zero, then evapDepth and effecitvePrecipDepth are zero, and if Ice Coverage is one, then effectivePrecipDepth is zero.

Calculate the individual components of the PreReservoir Condition Loss and the total PreRes Condition Loss

Each of these values is positive for a loss. The PreRes areas are contained in the Control and PreRes Areas table slot. The results of these calculations are set in the PreReservoir Condition table series slot.

Calculate the individual components of the Present Condition Loss and the total Present Condition Loss

Each of these values is positive for a loss. The results of these calculations are set in the Present Condition table series slot.

The netInflowVolume will be negative if there is unidentified loss. If netInflowVolume is positive, then unidentified loss is zero. The Storage Adjustment from Elev Vol Table Change component is only included if the Time Varying Elevation Volume method is selected for the Sediment category.

unidentifiedLoss will be positive for a loss.

Sum the Rio Grande and San Juan previous storages and Rio Grande Transfers to use in loss calculations

rioGrandeStorages, sanJuanStorages, and sanJuanPassThruStorages are lists of storage slots on all accounts with the specified water type.

rioGrandeTransfersIn and rioGrandeTransersOut are lists of Transfer slots on all accounts with the RioGrande water type.

Set the Seed Value for rioGrande Storage Iterative Loop

Carry out the rioGrande Storage iterative loop until the Rio Grande storage converges

To carry out Carry out the rioGrande Storage iterative loop until the Rio Grande storage converges, you must do the following in the order indicated:

1. Calculate the Hypothetical Condition Loss. See “Calculate the Hypothetical Condition Loss”.

2. Distribute San Juan gains/losses. See “Distribute San Juan Gains and Losses”.

3. Test for convergence. See “Test for convergence”.

Calculate the Hypothetical Condition Loss

This is the loss assuming only Rio Grande water in the reservoir, no San Juan water. These results are set in the Hypothetical Condition table series slot. Losses here are positive values.

Distribute San Juan Gains and Losses

The total Gain/Loss allocated to San Juan storage accounts is the difference between the Present Condition Loss and the Hypothetical Condition Loss. A positive value for each of these components represents a loss. In the Gain Loss slot on each account, a positive value represents a gain, and a negative value represents a loss. Thus the negative of the difference is taken before distributing the loss to the Gain Loss slot. The loss is distributed based on the contributing percentage of the total storage at the end of the previous timestep. If the total San Juan storage at the end of the previous timestep was zero, then the Gain Loss is zero for all accounts.

for all San Juan accounts

This allows the San Juan accounts to solve for Storage. The sum of all San Juan storages can then be used to calculate the total Rio Grande storage.

The AccumPermSediment is calculated by the selected method in the Sediment Transport category, and the value is set in the Est Sed Deposition table series slot.

Test for convergence

If totalRioGrandeStorage is zero, then prevTotalRioGrandeStorage is used in the denominator. If both are zero, then epsilon is zero. The iterative loop repeats until the absolute value of epsilon is less than the specified tolerance in the Convergence Percentage slot or the maximum number of iterations is reached.

Calculate the Physical Model Net Loss and the Net Loss Adjustment

Note: These values are used for reporting only. They are not used in later calculations.

A positive value for Physical Model Net Loss represents a loss.

A negative value for totalSanJuanGainLoss represents a loss.

A positive value for totalRioGrandeLossTemp represents a loss.

Calculate actual Rio Grande losses

If there is a RioGrandeConservation account, then the Rio Grande Losses are divided proportionally between the RioGrande account and the RioGrandeConservation account (details below). If there is no RioGrandeConservation account, then all RioGrandeConservation values in the steps below are zero.

IF , then .

If the reservoir is Locked In (indicated by a value of 1 in the Locked In slot), a percentage of the Rio Grande loss is allocated to the Carryover Content, proportional to the percent contribution to total Rio Grande storage. If the reservoir is not locked in, all Carryover values are zero.

Note: Carryover Content is not a slot on the accounts but is a separate slot Carryover Content on the reservoir object.

IF

ELSE

IF

ELSE

END IF

END IF

All other Rio Grande losses and storage go to the Incidental pool.

Adjust the temporary loss values, if necessary, according to the logic below before setting final slot values

If totalRioGrandeLossTemp is negative, representing a gain, then the gain is either divided proportionally between the Conservation and Incidental pools (if the Conservation Gain Switch is “On”), or the entire gain goes to the Incidental Pool.

IF

IF AND

IF

ELSE

END IF

ELSE

END IF

ELSE

For the remaining cases, totalRioGrandeLossTemp is positive (a loss). The temporary loss can be adjusted based on which pools have water.

IFANDAND

ELSE IF AND

AND

ELSE IF AND

AND

ELSE IF AND

AND

ELSE IF AND

AND

ELSE IF AND AND

ELSE IF AND AND

ELSE (all are positive)

END IF

END IF

If it is the first timestep locked in, then Carryover gets all of the storage and the Incidental pool gets all of the loss.

IF

IF

ELSE (not the first day locked in)

END IF

ELSE (The reservoir is not locked in)

END IF

Set the Gain Loss slots for the RioGrande and RioGrande Conservation accounts

Set the remaining slots associated with the method

Set summary values in table series slots

Each table below represents a table series slot. The row names represent the column headers in the table series slots.

Column | Value |
---|---|

Elevation | Reservoir.Pool Elevation |

Content | Reservoir.Storage |

Area | Reservoir.Surface Area |

Evaporation | Reservoir.Evaporation |

Precipitation | Reservoir.Precipitation Volume |

Unidentified Loss | |

Outflow (cfs) | Reservoir.Outflow |

Outflow (af/d) | Reservoir.Outflow |

Inflow (cfs) | Reservoir.Evaporation |

Inflow (af/d) | Reservoir.Evaporation |

Column | Value |
---|---|

River Channel Area | Control and PreRes Areas(Pre-Res River Area) |

Barren Area | Control and PreRes Areas(Pre-Res Barren Area) |

Meadow and Town Area | Control and PreRes Areas(Pre-Res Meadow Area) |

River Area Loss | |

Barren Area Loss | |

Irrigated Area Loss | |

Meadow and Town Area Loss | |

PreRes Condition Loss |

Column | Value |
---|---|

Water Surface Elev | Pool Elevation |

Lake Surface Area | Surface Area |

River Channel Area | presRiverArea |

Barren Area | presBarrenArea |

Total Area | Control and PreRes Areas(Control Area) |

Water Surface Area Loss | |

Barren Area Loss | |

Present Condition Loss | |

PreRes Condition Loss | |

Net RG Plus SJ-C Loss |

Column | Value |
---|---|

Total Content | Reservoir.Storage |

SJ-C Content | totalSanJuanStorageSum |

RG Content | totalRioGrandeStorage |

Lake Surface Area | hypotheticalSurfaceArea |

River Channel Area | hypotheticalRiverArea |

Barren Area | hypotheticalBarrenArea |

Water Surface Area Loss | |

Barren Area Loss | |

Hypo. Condition Loss | |

PreRes Condition Loss | |

Net RG Condition Loss | totalRioGrandeLossTemp |

Net RG Plus SJ-C Loss | |

Net SJ-C Loss | , for all accounts with SanJuan water type |

Column | Value |
---|---|

Content Change | |

Total Loss | |

Carryover Loss | RGCarryOverLossFinal |

Incidental Loss | RGIncidentalLossFinal |

Conservation Loss | RGConservationLossFinal |

Release From Storage | |

Total RG Content | |

Carryover Content | RGCarryOver |

Incidental Content | RGIncidental |

Conservation Content | RGConservation |

Column | Value |
---|---|

Water Surface Elev | Reservoir.Pool Elevation |

Total Content | Reservoir.Storage |

Change in Content | |

RG Release (cfs) | , for all accounts with RioGrande water type |

RG Release (af/d) | , for all accounts with RioGrande water type |

SJ-C Release (cfs) | , for all accounts with SanJuan water type |

SJ-C Release (af/d) | , for all accounts with SanJuan water type |

Evap | Reservoir.Evaporation |

Precip | Reservoir.Precipitation Volume |

RG Inflow (cfs) | , for all accounts with RioGrande water type |

RG Inflow (af/d) | , for all accounts with RioGrande water type |

SJ-C Inflow (cfs) | , for all accounts with SanJuan water type |

SJ-C Inflow (af/d) | , for all accounts with SanJuan water type |

Column | Value |
---|---|

Total Drawdown | |

RG Loss | totalRioGrandeLossTemp |

SJ-C Loss | , for all accounts with SanJuan water type |

Total Loss | SJ-C Loss + totalRioGrandeLossTemp |

RG Release From Storage | |

SJC Release From Storage | |

RG Content | totalRioGrandeStorage |

SJ-C Content | totalSanJuanStorageSum |

Total Content | Reservoir.Storage |

Elephant Butte and El Vado Gain Loss

Elephant Butte and El Vado reservoirs each have their own Gain Loss Calculation method. The Elephant Butte Loss with RG Compact method can also be selected. All three methods function the same, with a few small exceptions, as described below.

These methods are currently configured to function correctly for 1 Day and 1 Month timestep sizes only. In order for these methods to solve for Account Gain Loss, values such as Surface Area, Evaporation and Precipitation Volume must be know (solved for by simulation); therefore, the execution time must be set to After Simulation.

These methods calculate the total San Juan losses as the difference between the Present Condition Loss and the Hypothetical Condition Loss. The Hypothetical Condition represents the state of the reservoir assuming only Rio Grande water is present, with no San Juan water. The total San Juan loss is then distributed to all San Juan accounts proportional to the storage in each account at the end of the previous timestep. This allows the San Juan Storages to solve at the current timestep.

, for all San Juan accounts

All other loss goes to the Rio Grande accounts. The total Rio Grande loss is then distributed to all Rio Grande accounts proportional to the storage in each account at the end of the previous timestep.

, for all Rio Grande accounts

See “Slots Specific to These Methods” for details of the individual components. See “Steps Carried Out by the Elephant Butte and El Vado Gain Loss Method” for the steps carried out by each method.

Slots Specific to These Methods

Selecting the Elephant Butte Gain Loss, El Vado Gain Loss or the Elephant Butte Loss with RG Compact method instantiates the following slots.

Control and PreRes Areas

Type: Table Slot

Units: Area, Area, Area, Area, Area, Area

Description: The table contains a one row and six columns, one for each of the following: Control Area, Pre-Res Barren Area, Pre-Res Irrigated Area, Pre-Res Meadow Area, Pre-Res River Area, Pre-Res Lake Area

Information: The areas in this table are used for calculating losses for prereservoir conditions.

I/O: Required Input

Links: No

Effective Precip

Type: Series Slot

Units: Volume

Description: The effective precipitation calculated for the given timestep.

Information: The total accumulated precipitation depth for the month is used to calculate the accumulated effective precipitation for the current day and the previous day. The difference is the Effective Precip for the current day. For a 1 Month timestep, the effective precipitation is calculated from the total precipitation for the current timestep.

I/O: Output

Links: No

Effective Precipitation Table

Type: Table Slot

Units: Length, Fraction, Length

Description: The relationship between total accumulated precipitation depth for the month and the amount considered effective precipitation.

Information: The first column gives a depth of monthly precipitation. The second column gives the fraction of that precipitation depth that is considered effective precipitation. The third column contains the accumulated effective precipitation value corresponding to the precipitation in the first column. Linear interpolation is used to calculate the effective precipitation depth based on the total precipitation depth for the month. Only the first and third columns are actually used in the interpolation. The second column is only for reference.

I/O: Required Input

Links: No

Hypothetical Lake Elev River Area Table

Type: Table Slot

Units: Length, Area

Description: Relationship of Hypothetical River Area to Hypothetical Lake Elevation

Information: This table is used to calculate river area for hypothetical conditions

I/O: Required Input

Links: No

Net Loss Adjustment

Type: Series Slot

Units: Volume

Description: The difference between the Physical Model Net Loss and the losses calculated by the accounting method

Information: If this value is positive the physical model loss was greater than the accounting method loss

I/O: Output

Links: No

Physical Model Net Loss

Type: Series Slot

Units: Volume

Description: The net loss from the simulation methods (Evaporation - Precipitation).

Information: A positive value represents a net loss

I/O: Output

Links: No

PreRes Irrigated Area Loss Rate

Type: Series Slot with Periodic Input

Units: Velocity

Description: The loss rate over irrigated area before the reservoir existed

Information: This value is used for calculating losses for prereservoir conditions.

I/O: Required Input

Links: No

PreRes Meadow Area Loss Rate

Type: Series Slot with Periodic Input

Units: Velocity

Description: The loss rate over meadow area before the reservoir existed

Information: This value is used for calculating losses for prereservoir conditions.

I/O: Required Input

Links: No

Present Lake Elev River Area Table

Type: Table Slot

Units: Length, Area

Description: Relationship of River Area to Pool Elevation

Information: This table is used to calculate river area for present conditions

I/O: Required Input

Links: No

Table Series Slots Set by This Method

The following table series slots are also set by this method. Details of each column value are given at the end of the method description.

Steps Carried Out by the Elephant Butte and El Vado Gain Loss Method

The Elephant Butte and El Vado Gain Loss method carries out the following steps:

1. Check for previous Storage and Accrual on all accounts.

2. Call the selected Sediment Transport method to calculate Accumulated Perm Sediment.

3. Get lists of each type of account slot by water type.

4. Register account Inflow and Outflow slots as dependencies.

Calculate Effective Precipitation

For a 1 Month timestep, this can be done based on the Precipitation Volume for the month, which will have been set in simulation. The Precipitation Volume calculation will already account for Ice Coverage if applicable. For a 1 Day timestep, Effective Precipitation must be calculated using the cumulative sum of Precipitation Rate from the beginning of the month to the current day, and Ice Coverage is included explicitly. At a 1 Month timestep the average surface area is used, whereas the current (end of timestep) surface area is used for a 1 Day timestep.

IF isMonthly

ELSE

END IF

Calculate the evaporation depth and effective precipitation depth to use in loss calculations

For all following calculations, Area values for a 1 Day timestep are current (end of timestep) areas. For a 1 Month timestep, Area values are averages of the end of the previous timestep and end of the current timestep values, similarly for Ice Coverage. If Ice Coverage is not applicable based on the selected evaporation method, it is zero in the calculations below.

If the Surface Area is zero, then evapDepth and effecitvePrecipDepth are zero, and if Ice Coverage is one, then effectivePrecipDepth is zero.

Calculate the individual components of the PreReservoir Condition Loss and the total PreRes Condition Loss

Each of these values is positive for a loss. The PreRes areas are contained in the Control and PreRes Areas table slot. The results of these calculations are set in the PreReservoir Condition table series slot.

• Calculate the individual components of the Present Condition Loss and the total Present Condition Loss.

Each of these values is positive for a loss. The results of these calculations are set in the Present Condition table series slot.

The netInflowVolume will be negative if there is unidentified loss. If netInflowVolume is positive, then unidentified loss is zero. The Storage Adjustment from Elev Vol Table Change component is only included if the Time Varying Elevation Volume method is selected for the Sediment category.

unidentifiedLoss will be positive for a loss.

IF Reservoir = Elephant Butte

ELSE

END IF

Sum the Rio Grande and San Juan previous storages and Rio Grande Transfers to use in loss calculations

rioGrandeStorages, sanJuanStorages and sanJuanPassThruStorages are lists of storage slots on all accounts with the specified water type.

rioGrandeTransfersIn and rioGrandeTransersOut are lists of Transfer slots on all accounts with the RioGrande water type.

Set the seed value for the RioGrande Storage iterative loop

Carry out the RioGrande Storage iterative loop until the Rio Grande storage converges

To carry out the RioGrande Storage iterative loop until the Rio Grande storage converges, you must do the following in the order indicated:

Calculate the Hypothetical Condition Loss

This is the loss assuming only Rio Grande water in the reservoir, no San Juan water. These results are set in the Hypothetical Condition table series slot. Losses here are positive values.

Calculate and distribute San Juan gains/losses

The total Gain/Loss allocated to San Juan storage accounts is the difference between the Present Condition Loss and the Hypothetical Condition Loss. A positive value for each of these components represents a loss. In the Gain Loss slot on each account, a positive value represents a gain, and a negative value represents a loss. Thus the negative of the difference is taken before distributing the loss to the Gain Loss slot. The loss is distributed based on the contributing percentage of the total storage at the end of the previous timestep. If the total San Juan storage at the end of the previous timestep was zero, then the Gain Loss is zero for all accounts.

for all San Juan accounts

This allows the San Juan accounts to solve for Storage. The sum of all San Juan storages can then be used to calculate the total Rio Grande storage.

Test for convergence

If totalRioGrandeStorage is zero, then prevTotalRioGrandeStorage is used in the denominator. If both are zero, then epsilon is zero. The iterative loop repeats until the absolute value of epsilon is less than the specified tolerance in the Convergence Percentage slot or the maximum number of iterations (Max Iterations slot) is reached.

Calculate the Rio Grande gains/losses

The Storage Adjustment from Elev Vol Table Change is applicable only if the Time Varying Elevation Volume method is selected for the Sediment category. It is removed at this point in the calculation because all loss from the Elevation-Volume change will be allocated later to the RioGrande account.

Distribute the Rio Grande gains/losses

The loss is distributed based on the contributing percentage of the total storage at the end of the previous timestep. If the selected method is Elephant Butte Loss with RG Compact, then the loss is distributed to all accounts with the RioGrande water type, even if they have zero or negative storage. If the selected method is Elephant Butte Gain Loss or El Vado Gain Loss, the gain/loss is only distributed to accounts with positive storage. If all accounts with the RioGrande water type have zero or negative storage at the previous timestep, then all of the gain/loss goes to the RioGrande account.

IF Loss Method = Elephant Butte Loss with RG Compact

,

for all Rio Grande accounts

ELSE IF (Loss Method = Elephant Butte Gain Loss)

OR (Loss Method = El Vado Gain Loss)

For all Rio Grande accounts with :

IF

END IF

END IF

Allocate the Storage Adjustment from Elev Vol Table Change to the RioGrande account.

This value will be negative for a loss.

Calculate the Physical Model Net Loss and the Net Loss Adjustment

Note: These values are used for reporting only. They are not used in later calculations.

A positive value for Physical Model Net Loss represents a loss.

A negative value for totalSanJuanGainLoss represents a loss.

A positive value for totalRioGrandeLossTemp represents a loss.

Set summary values in table series slots

The Elephant Butte and El Vado Gain Loss sets the following table series slots. Each table below represents a table series slot. The row names represent the column headers in the table series slots.

Column | Value |
---|---|

Elevation | Reservoir.Pool Elevation |

Content | Reservoir.Storage |

Area | Reservoir.Surface Area |

Evaporation | Reservoir.Evaporation |

Precipitation | Reservoir.Precipitation Volume |

Unidentified Loss | |

Outflow (cfs) | Reservoir.Outflow |

Outflow (af/d) | Reservoir.Outflow |

Inflow (cfs) | Reservoir.Evaporation |

Inflow (af/d) | Reservoir.Evaporation |

Column | Value |
---|---|

River Channel Area | Control and PreRes Areas(Pre-Res River Area) |

Barren Area | Control and PreRes Areas(Pre-Res Barren Area) |

Meadow and Town Area | Control and PreRes Areas(Pre-Res Meadow Area) |

River Area Loss | |

Barren Area Loss | |

Irrigated Area Loss | |

Meadow and Town Area Loss | |

PreRes Condition Loss |

Column | Value |
---|---|

Water Surface Elev | Pool Elevation |

Lake Surface Area | Surface Area |

River Channel Area | presRiverArea |

Barren Area | presBarrenArea |

Total Area | Control and PreRes Areas(Control Area) |

Water Surface Area Loss | |

Barren Area Loss | |

Present Condition Loss | |

PreRes Condition Loss | |

Net RG Plus SJ-C Loss |

Column | Value |
---|---|

Total Content | Reservoir.Storage |

SJ-C Content | totalSanJuanStorageSum |

RG Content | totalRioGrandeStorage |

Lake Surface Area | hypotheticalSurfaceArea |

River Channel Area | hypotheticalRiverArea |

Barren Area | hypotheticalBarrenArea |

Water Surface Area Loss | |

Barren Area Loss | |

Hypo. Condition Loss | |

PreRes Condition Loss | |

Net RG Condition Loss | totalRioGrandeLossTemp |

Net RG Plus SJ-C Loss | |

Net SJ-C Loss | , for all accounts with SanJuan water type |

Column | Value |
---|---|

Water Surface Elev | Reservoir.Pool Elevation |

Total Content | Reservoir.Storage |

Change in Content | |

RG Release (cfs) | , for all accounts with RioGrande water type |

RG Release (af/d) | , for all accounts with RioGrande water type |

SJ-C Release (cfs) | , for all accounts with SanJuan water type |

SJ-C Release (af/d) | , for all accounts with SanJuan water type |

Evap | Reservoir.Evaporation |

Precip | Reservoir.Precipitation Volume |

RG Inflow (cfs) | , for all accounts with RioGrande water type |

RG Inflow (af/d) | , for all accounts with RioGrande water type |

SJ-C Inflow (cfs) | , for all accounts with SanJuan water type |

SJ-C Inflow (af/d) | , for all accounts with SanJuan water type |

Total Inflow (cfs) | Reservoir.Inflow |

Total Inflow (af/d) | Reservoir.Inflow |

Column | Value |
---|---|

Total Drawdown | |

RG Loss | totalRioGrandeLossTemp |

SJ-C Loss | , for all accounts with SanJuan water type |

Total Loss | SJ-C Loss + totalRioGrandeLossTemp |

RG Release From Storage | |

SJC Release From Storage | |

RG Content | totalRioGrandeStorage |

SJ-C Content | totalSanJuanStorageSum |

Total Content | Reservoir.Storage |

Nambe Falls Gain Loss

This method calculates the total San Juan losses as the difference between the Present Condition Loss and the PreReservoir Condition Loss. The total San Juan loss is then distributed to all San Juan accounts proportional to the storage in each account at the end of the previous timestep. This allows the San Juan Storages to solve at the current timestep.

The method also calculates the Net Loss Adjustment, Operational Release and Irrigation Release.This method does not set the Gain Loss for the Rio Grande account(s).

See “Slots Specific to This Method” for details of the individual components. See “Steps Carried Out by the Nambe Falls Gain Loss Method” for the steps carried out by this method.

Slots Specific to This Method

Selecting the Nambe Falls Gain Loss method instantiates the following slots:

Augmented Release Switch

Type: Series Slot

Units: None

Description: Specifies whether drawdown should go toward Operational Release or Irrigation Release

Information: The value in this slot must be 0 or 1. If the value is 1, any drawdown is counted as Operational Release. If the value is 0, any drawdown is counted as Irrigation Release.

I/O: Required Input

Links: No

Control and PreRes Areas

Type: Table Slot

Units: Area, Area, Area, Area, Area, Area

Description: The table contains a one row and six columns, one for each of the following: Control Area, Pre-Res Barren Area, Pre-Res Irrigated Area, Pre-Res Meadow Area, Pre-Res River Area, Pre-Res Lake Area

Information: The areas in this table are used for calculating losses for prereservoir conditions.

I/O: Required Input

Links: No

Effective Precip

Type: Series Slot

Units: Volume

Description: The effective precipitation calculated for the given timestep.

Information: The total accumulated precipitation depth for the month is used to calculate the accumulated effective precipitation for the current day and the previous day. The difference is the Effective Precip for the current day. For a 1 Month timestep, the effective precipitation is calculated from the total precipitation for the current timestep.

I/O: Output

Links: No

Effective Precipitation Table

Type: Table Slot

Units: Length, Fraction, Length

Description: The relationship between total accumulated precipitation depth for the month and the amount considered effective precipitation.

Information: The first column gives a depth of monthly precipitation. The second column gives the fraction of that precipitation depth that is considered effective precipitation. The third column contains the accumulated effective precipitation value corresponding to the precipitation in the first column. Linear interpolation is used to calculate the effective precipitation depth based on the total precipitation depth for the month. Only the first and third columns are actually used in the interpolation. The second column is only for reference.

I/O: Required Input

Links: No

Hypothetical Lake Elev River Area Table

Type: Table Slot

Units: Length, Area

Description: Relationship of Hypothetical River Area to Hypothetical Lake Elevation

Information: This table is used to calculate river area for hypothetical conditions

I/O: Required Input

Links: No

Net Loss Adjustment

Type: Series Slot

Units: Volume

Description: The difference between the Physical Model Net Loss and the losses calculated by the accounting method

Information: If this value is positive the physical model loss was greater than the accounting method loss

I/O: Output

Links: No

Physical Model Net Loss

Type: Series Slot

Units: Volume

Description: The net loss from the simulation methods (Evaporation - Precipitation).

Information: A positive value represents a net loss

I/O: Output

Links: No

PreRes Irrigated Area Loss Rate

Type: Series Slot with Periodic Input

Units: Velocity

Description: The loss rate over irrigated area before the reservoir existed

Information: This value is used for calculating losses for prereservoir conditions.

I/O: Required Input

Links: No

PreRes Meadow Area Loss Rate

Type: Series Slot with Periodic Input

Units: Velocity

Description: The loss rate over meadow area before the reservoir existed

Information: This value is used for calculating losses for prereservoir conditions.

I/O: Required Input

Links: No

Present Lake Elev River Area Table

Type: Table Slot

Units: Length, Area

Description: Relationship of River Area to Pool Elevation

Information: This table is used to calculate river area for present conditions

I/O: Required Input

Links: No

The following table series slots are also set by this method. Details of each column value are given at the end of the method description. See

Steps Carried Out by the Nambe Falls Gain Loss Method

The Nambe Falls Gain Loss method carries out the following steps:

1. Check for previous Storage and Accrual on all accounts.

2. Get lists of each type of San Juan account slot.

Calculate effective precipitation

For a 1 Month timestep, this can be done based on the Precipitation Volume for the month, which will have been set in simulation. The Precipitation Volume calculation will already account for Ice Coverage if applicable. For a 1 Day timestep, Effective Precipitation must be calculated using the cumulative sum of Precipitation Rate from the beginning of the month to the current day, and Ice Coverage is included explicitly. At a 1 Month timestep the average surface area is used, whereas the current (end of timestep) surface area is used for a 1 Day timestep.

IF isMonthly

ELSE

END IF

Calculate the evaporation depth and effective precipitation depth to use in loss calculations

For all following calculations, Area values for a 1 Day timestep are current (end of timestep) areas. For a 1 Month timestep, Area values are averages of the end of the previous timestep and end of the current timestep values, similarly for Ice Coverage. If Ice Coverage is not applicable based on the selected evaporation method, it is zero in the calculations below.

If the Surface Area is zero, then evapDepth and effecitvePrecipDepth are zero, and if Ice Coverage is one, then effectivePrecipDepth is zero.

Calculate the individual components of the PreReservoir Condition Loss and the total PreRes Condition Loss

Each of these values is positive for a loss. The PreRes areas are contained in the Control and PreRes Areas table slot. The results of these calculations are set in the PreReservoir Condition table series slot.

Calculate the individual components of the Present Condition Loss and the total Present Condition Loss

Each of these values is positive for a loss. The results of these calculations are set in the Present Condition table series slot.

The netInflowVolume will be negative if there is unidentified loss. If netInflowVolume is positive, then unidentified loss is zero. The Storage Adjustment from Elev Vol Table Change component is only included if the Time Varying Elevation Volume method is selected for the Sediment category.

unidentifiedLoss will be positive for a loss.

Distribute San Juan gains/losses

The total Gain/Loss allocated to San Juan storage accounts is the difference between the Present Condition Loss and the PreReservoir Condition Loss. A positive value for each of these components represents a loss. In the Gain Loss slot on each account, a positive value represents a gain, and a negative value represents a loss. Thus the negative of the difference is taken before distributing the loss to the Gain Loss slot. The loss is distributed based on the contributing percentage of the total storage at the end of the previous timestep. If the total San Juan storage at the end of the previous timestep was zero, then the Gain Loss is zero for all accounts.

sanJuanStorages and sanJuanPassThruStorages are lists of storage slots on all accounts with the San Juan water type.

This will allow the San Juan accounts to solve for storage.

Calculate the Physical Model Net Loss and the Net Loss Adjustment

A positive value for Physical Model Net Loss represents a loss. A negative value for totalSanJuanLosses represents a loss.

Calculate the Operational Release, Irrigation Release and Storage Replacement

If the reservoir elevation was increasing or if the reservoir was spilling, the change in storage is counted as risingChangeStorage otherwise it is droppingChangeStorage.

Note: For these calculations, if the reservoir changes conditions within the month (rising to dropping or dropping to rising) the results at a 1 Month timestep will not necessarily match the monthly aggregate of results from a 1 Day timestep.

IF OR

ELSE

END IF

If the reservoir was not spilling at the end of the timestep but was spilling at the start, then these values need to be modified.

IF AND

END IF

IF Augmented Release Switch = 1

ELSE

END IF

Set summary values in table series slots

The Nambe Falls Gain/Loss method sets the following table series slots. Each table below represents a table series slot. The row names in the following tables represent the column headers in the table series slots.

Column | Value |
---|---|

Elevation | Reservoir.Pool Elevation |

Content | Reservoir.Storage |

Area | Reservoir.Surface Area |

Evaporation | Reservoir.Evaporation |

Precipitation | Reservoir.Precipitation Volume |

Unidentified Loss | |

Outflow (cfs) | Reservoir.Outflow |

Outflow (af/d) | Reservoir.Outflow |

Inflow (cfs) | Reservoir.Evaporation |

Inflow (af/d) | Reservoir.Evaporation |

Column | Value |
---|---|

River Channel Area | Control and PreRes Areas(Pre-Res River Area) |

Barren Area | Control and PreRes Areas(Pre-Res Barren Area) |

Meadow and Town Area | Control and PreRes Areas(Pre-Res Meadow Area) |

River Area Loss | |

Barren Area Loss | |

Irrigated Area Loss | |

Meadow and Town Area Loss | |

PreRes Condition Loss |

Column | Value |
---|---|

Water Surface Elev | Reservoir.Pool Elevation |

Lake Surface Area | Reservoir.Surface Area |

River Channel Area | presRiverArea |

Barren Area | presBarrenArea |

Total Area | Control and PreRes Areas(Control Area) |

Water Surface Area Loss | |

Barren Area Loss | |

Present Condition Loss | |

PreRes Condition Loss | |

Net RG Plus SJ-C Loss | totalSanJuanLosses |

Column | Value |
---|---|

Water Surface Elev | Reservoir.Pool Elevation |

Total Content | Reservoir.Storage |

Change in Content | |

Storage Replacement | storageReplacemet |

Total Release (cfs) | Reservoir.Outflow |

Total Release (af/d) | Reservoir.Outflow |

Operational Release | operationalRelease |

Irrigation Release | irrigationRelease |

Net Loss | totalSanJuanLosses |

Replacement Loss | replacementLoss |

Total Inflow (cfs) | |

Total Inflow (af/d) | |

Storage + Loss Replmt. |

Heron Gain Loss

This method calculates the Gain Loss for accounts on the Heron Reservoir. The method is currently configured to function correctly for 1 Day and 1 Month timestep sizes only. This method requires simulation to have solved for Storage, Evaporation and Precipitation Volume, so the execution time must be set to After Simulation.

The Gain Loss for the RioGrande account is set equal to seepage.

This allows the RioGrande account to solve for storage. All other gains/losses go to the FederalSanJuan account. The Gain Loss for all other accounts with the SanJuan water type is set to zero.

sanJuanStorages and sanJuanOutflows lists of the Outflow and Storage slots on all accounts withe the San Juan water type.

, for all other San Juan accounts.

See “Slots Specific to This Method” for details of the individual components. See “Summary Values in Table Series Slots Set by the Heron Gail Loss Method” for the table series slots that are set by the Heron Gain Loss method.

Slots Specific to This Method

Selecting the Heron Gain Loss method instantiates the following slots:

Net Loss Adjustment

Type: Series Slot

Units: Volume

I/O: Output

Links: No

Physical Model Net Loss

Type: Series Slot

Units: Volume

Description: The net loss from the simulation methods (Evaporation - Precipitation).

Information: A positive value represents a net loss

I/O: Output

Links: No

Physical Model Net Loss is positive for a loss. The account Gain Loss slot values are negative for a loss.

Summary Values in Table Series Slots Set by the Heron Gail Loss Method

The Heron Gain Loss method sets the following table series slots. Each table represents a table series slot. The row names represent the column headers in the table series slots.

Column | Value |
---|---|

Elevation | Reservoir.Pool Elevation |

Content | Reservoir.Storage |

Area | Reservoir.Surface Area |

Evaporation | Reservoir.Evaporation |

Precipitation | Reservoir.Precipitation Volume |

Unidentified Loss | |

Outflow (cfs) | Reservoir.Outflow |

Outflow (af/d) | Reservoir.Outflow |

Inflow (cfs) | Reservoir.Evaporation |

Inflow (af/d) | Reservoir.Evaporation |

Column | Value |
---|---|

Water Surface Elev | Reservoir.Pool Elevation |

Total Content | Reservoir.Storage |

Change in Content | |

RG Release (cfs) | , for all accounts with RioGrande water type |

RG Release (af/d) | , for all accounts with RioGrande water type |

SJ-C Release (cfs) | , for all accounts with SanJuan water type |

SJ-C Release (af/d) | , for all accounts with SanJuan water type |

Evap | Reservoir.Evaporation |

Precip | Reservoir.Precipitation Volume |

RG Inflow (cfs) | , for all accounts with RioGrande water type |

RG Inflow (af/d) | , for all accounts with RioGrande water type |

SJ-C Inflow (cfs) | , for all accounts with SanJuan water type |

SJ-C Inflow (af/d) | , for all accounts with SanJuan water type |

Total Inflow (cfs) | Reservoir.Inflow |

Total Inflow (af/d) | Reservoir.Inflow |

Column | Value |
---|---|

Total Drawdown | |

RG Loss | 0 |

SJ-C Loss | , for all accounts with SanJuan water type |

Total Loss | SJ-C Loss |

RG Release From Storage | |

SJC Release From Storage | |

RG Content | RioGrande.Storage |

SJ-C Content | totalSanJuanStorageSum |

Total Content | Reservoir.Storage |

For a 1 Day timestep, values are set in three additional table series slots:

• Preliminary Data Totals

• Daily Reservoir Totals

• Reservoir Summary Totals

These slots contain the monthly totals of their corresponding table series slots. The monthly sums are set at the last timestep for each month. All other cells display “NaN.” For a 1 Month timestep, no values will be set in these slots.

Reservoir Account Slot Inflow

The reservoir has a single basin-specific method. See “Heron Inflow” for details.

Heron Inflow

This method sets the Slot Inflow for all accounts on Heron Reservoir. The Heron Inflow method requires that a method be selected in the Seepage category. The method requires values calculated by simulation, such as seepage and surface area; therefore the execution time must be set to After Simulation. This method is currently configured to function correctly for 1 Day and 1 Month timestep sizes only.

The Slot Inflow for all accounts with San Juan water type is set to zero. The Slot Inflow for the RioGrande account is set to the difference between the change in cumulative natural flow and the Inflow to the Rio Grande account.

, for all SanJuan accounts

The calculation of naturalFlowCumul is dependent on whether the RioGrande.Inflow is in high flow or low flow conditions for the month. For a 1 Day timestep, if the condition changes at some point during the month, all values are recalculated previous timesteps in the month based on the new condition. For a 1 Month timestep, the monthly condition is known at the end of each timestep (end of each month) so there is no need to recalculate any values.

See “Slots Specific to This Method” for details of the individual components. See “Steps Carried Out by the Heron Inflow Method” for the steps carried out by the Heron Inflow method.

Slots Specific to This Method

Selecting the Heron Inflow method instantiates the following slots:

Heron Inflow Coefficients

Type: Table Slot

Units: Volume, None, None

Description: The first column contains the test volume for determining whether the total monthly RioGrande flow is high flow or low flow. The second and third columns contain the ratios used for low flow and high flow conditions.

Information: The products of the flow ratios and the RioGrande.Inflow are used in calculating the Natural Flow.

I/O: Required Input

Links: No

Rio Grande Ratio

Type: Series Slot

Units: None

Description: The final flow ratio used at each timestep based on the monthly flow condition

Information: The value in this slot will be either the Low Flow Ratio or the High Flow Ratio from the Heron Inflow Coefficients table slot.

I/O: Output only

Links: No

Effective Precip

Type: Series Slot

Units: Volume

Description: The effective precipitation calculated for the given timestep.

I/O: Output

Links: No

Effective Precipitation Table

Type: Table Slot

Units: Length, Fraction, Length

I/O: Required Input

Links: No

The following table series slots are also set by this method. Details of each column value are given in the method description below.

Steps Carried Out by the Heron Inflow Method

The Heron Inflow method carries out the following steps:

4. Convert storages to equivalent flows based on the timestep length for use in net gain calculations

6. Check the flow conditions, and then set the inflow ratio and monthly cumulative values accordingly

Set the Slot Inflow for all accounts with San Juan water type to zero

, for all San Juan accounts

Calculate Effective Precipitation

IF isMonthly

ELSE

END IF

Calculate the test volume and the cumulative RioGrande.Inflow for the month to date

For a 1 Day timestep, these are cumulative values from the beginning of the month to the current timestep. For a 1 Month timestep, the cumulative monthly value is simply the current timestep value.

IF isMonthly

ELSE (1Day timestep)

IF

ELSE

END IF

END IF

Convert storages to equivalent flows based on the timestep length for use in net gain calculations

Calculate local variables and set the values in the Heron Inflow Values table series slot

The values that you must calculate are displayed under Column and you set the values in the Heron Inflow Values table series slot.

Column | Value |
---|---|

Effective Precip (Volume) | Reservoir.Effective Precip |

Net Evaporation (Volume) | Reservoir.Evaporation - Reservoir.Effective Precip |

Seepage (Flow) | Reservoir.Seepage |

Low Ratio (Flow) | |

High Ratio (Flow) | |

Low Net EOD Gain (Flow) | |

High Net EOD Gain (Flow) | |

Low Hybrid Seepage (Flow) | |

High Hybrid Seepage (Flow) | |

Low Hybrid EOD (Flow) | |

High Hybrid EOD (Flow) | |

EOD Content (Volume) | N/A (Values are not set in this column) |

Check the flow conditions, and then set the inflow ratio and monthly cumulative values accordingly

IF , (low flow conditions)

IF isMonthly

ELSE (1Day timestep)

END IF

ELSE (high flow conditions)

IF isMonthly

ELSE (1Day timestep)

END IF

END IF

Calculate the cumulative ratio inflow and the cumulative net gain

If it is the first day of the month or a 1 Month timestep, these are just the inflowRatio (if it is positive) and the netGainMonthly for the timestep.

IF OR (isMonthly)

IF

ELSE (inflowRatio is positive)

END IF

ELSE (after the first of the month at a 1Day timestep)

IF

ELSE

END IF

END IF

Determine the correct logic to use

IF

ELSE

END IF

IF AND

END IF

IF

ELSE

END IF

Set the values in the Heron Cumulative Inflow Values table series slot

The table values are set to the local variable as follows:

Column Header (Unit Type) | Value (local variable) |
---|---|

Ratio Inflow (Volume) | cumulRatio |

Net EOD Gain (Volume) | cumulNetGain |

Inflow Within (Volume) | cumulInflowWithin |

Natural Flow (Volume) | cumulNaturalFlow |

Set RioGrande.Slot Inflow

If it is the first day of the month, or a 1 Month timestep, or if the conditions have not changed from the previous timestep, then the RioGrande.Slot Inflow can be set. If conditions have changed, then a helper function (findHeronRGInflow) is called. This function recalculates values for previous timesteps in the month based on the conditions at the current timestep.

IF OR isMonthly

ELSE IF OR

The first condition here indicates that the flow condition has changed from high to low or low to high. The second condition indicates that the logic has changed from the previous timestep.

• FOR (d IN BeginningOfMonth TO CurrentDay)

– Set all previous values in Rio Grande Ratio for the month equal to the value for the current day

– Call findHeronRGInflow to recalculate values for previous timesteps in the month and to set RioGrande.Slot Inflow for all previous days in the month and the current day.

Note: See “findHeronRGInflow function” for a description of the findHeronRGInflow function.

END FOR

ELSE (conditions have not changed from the previous day)

END IF

findHeronRGInflow function

The findHeronRGInflow function is called from within the Heron Inflow method when the conditions at the current timestep (high flow/low flow or the logic used) have changed from the previous timestep. The function recalculates previous values for the given month used in the RioGrande.Slot Inflow calculation based on the conditions at the current timestep. This recalculation only applies for a 1 Day timestep. At a 1 Month timestep, the final condition for the month is know at the end of each timestep when values are first calculated.

The steps in the function are described below.

Note: This function is called from within a FOR loop over all timesteps from the first day of the month to the current controller timestep. In the notation below, the index d refers to the timestep in the FOR loop, and the index curDay refers to the current controller timestep.

IF

• This would indicate low flow conditions for the month to-date

– Set the inflowRatio for the day index in the FOR loop equal to the low inflow ratio, and sum the cumulative inflow ratio, net gain and seepage from the beginning of the month to index day.

ELSE (high flow conditions)

– Set the inflowRatio for the day index in the FOR loop equal to the low inflow ratio, and sum the cumulative inflow ratio, net gain and seepage from the beginning of the month to index day.

END IF

Set the previous logic to the current logic to use for the next timestep

Calculate the monthly sum of each column in the Heron Inflow Values table series slot

For the final day of the month at a 1 Day timestep, calculate the monthly sum of each column in the Heron Inflow Values table series slot. Flow values will be summed to the corresponding volumes. Set the sums at the final day of each month in the Heron Inflow Totals table series slot. For a 1 Month timestep, this slot will be empty; the monthly (end of timestep) values will be displayed in Heron Inflow Values. See “Heron Inflow Values”.

Heron Inflow Totals

The Heron Inflow Totals slot holds the monthly sum of the Heron Inflow Values slot.

Set inflowRatioCumul and adjust netGainCumul if inflowRatioMonthly is negative

These values will be used to calculate the cumulative natural flow based on the current logic. inflowRatioMonthly is the cumulative ratio inflow for the current day (current controller timestep) passed to this function from the Heron Inflow method above.

IF (first day of the month)

IF

ELSE

END IF

ELSE (after the beginning of the month)

IF

ELSE

END IF

END IF

IF

END IF

Set the cumulative natural flow based on the current (controller timestep) logic

The current logic (currentLogic) is passed to this function from the Heron Inflow method above.

IF

ELSE IF

ELSE IF

ELSE IF

ELSE IF

END IF

Set the values in the Heron Cumulative Inflow Values table series slot at timestep d

Note: The Heron Cumulative Inflow Values displayed below are an adjustment when the findHeronRGInflow function is used. This results in the overriding of the values that have already been set at timestep d. See “Heron Cumulative Inflow Values” and “findHeronRGInflow function” for details.

Column | Value |
---|---|

Ratio Inflow (Volume) | inflowRatioCumul |

Net EOD Gain (Volume) | netGainCumul |

Inflow Within (Volume) | inflowWithinCumul |

Natural Flow (Volume) | naturalFlowCumul |

Set the RioGrande.Slot Inflow at timestep d to difference between the natural flow at this timestep and the RioGrande.Inflow at this timestep

IF (first day of the month)

ELSE (after the first day of the month)

END IF

At this point, the function will repeat with the next index day d until it has reached the current day (current controller timestep).

Sediment Transport

The Sediment Transport category is actually displayed on the Methods tab, not the Accounting Methods tab; however, this category is only available if the Abiquiu, Cochiti or Jemez Gain Loss method has been selected for the Reservoir Account Gain Loss category. (See “Abiquiu, Cochiti and Jemez Gain Loss”.) The sedimentation methods in this category are only called in Accounting. They are not called during physical simulation.

The method in this category—Total Vol Sed (Post2000) calculates the storage volume lost to sedimentation. See “Total Vol Sed (Post2000)” for details.

Total Vol Sed (Post2000)

This method calculates the sediment load in tons as a function of the reservoir inflow. It then converts this to a volume based on the sediment density.

Note: This method is hard-coded to calculate daily sediment load based on units of cfs for the reservoir inflow and tons for the sediment load. The Exponent value in the Seasonal Inflow Coeffs slot must be set accordingly.

This method is currently configured to function correctly for 1 Day and 1 Month timestep sizes only. At a 1 Month timestep, sediment load is calculated by first finding daily sediment load using the average daily inflow for the month the multiplying the daily load by the number of days in the month. The results from a 1 Month timestep may not exactly match the aggregate of the daily results for the month if the daily inflows vary significantly within the month.

See “Slots Specific to This Method” for details of the individual components. See “Steps Carried Out by the Nambe Falls Gain Loss Method” for the steps carried out by this method.

Slots Specific to This Method

Selecting the Total Vol Sed (Post2000) method instantiates the following slots:

Bed Load Coeffs

Type: Table Slot

Units: Flow, None, None

Description: Slope and intercept values for calculating Bed Load at discrete inflow values

Information: The first column contains reservoir inflow values. The second column is the slope and the third column is the intercept used when calculating bed load for a given inflow. The slope and intercept should be based on daily sediment load in tons for an inflow in cfs, regardless of the timestep length or the units set on any other slot or column.The method uses a table lookup to select the slope and intercept value (not interpolation). It uses the coefficient and exponent from the row corresponding to the largest flow value than or equal to the reservoir Inflow

I/O: Required Input

Links: No

Est Sed Deposition

Type: Table Series Slot

Units: Length, Mass, Mass, None, Volume, Volume

Description: The final outputs from the sediment calculations

Information: The final column, Accumulated Perm Sediment, is the primary output value of this method. The value is also shown on the series slot Accumulated Permanent Sediment, which is used later by accounting methods. Details of the values in this table are given in the method description below.

I/O: Output

Links: No

Permanent Sediment Content

Type: Table Slot

Units: Volume

Description: The storage volume occupied by permanent sediment

I/O: Required Input

Links: No

Accumulated Permanent Sediment

Type: Series Slot

Units: Volume

Description: The accumulated storage volume occupied by permanent sediment. Values in this series slot are the same as the values in the Est Sed Deposition slot, Accumulated Perm Sediment column.

Information: If the initial timestep value on this slot is not known, but the value on the table series slot is known, the table series slot value is copied to the series slot at the initial timestep and set as an input.

I/O: Initial Input, remaining values output.

Links: No

Seasonal Inflow Coeffs

Type: Table Slot

Units: None, Flow, None, None

Description: The coefficient and exponent to use in calculating sediment load for a given month and a given reservoir inflow

The first column contains the month, represented by an integer. At least one row is required for each month. The second column contains inflow values, which should be monotonically increasing for each month. The third column contains coefficient values for each month and specified flow. The fourth column contains exponent values for each month and specified flow. The coefficient and exponent should be based on daily sediment load in tons for an inflow in cfs, regardless of the timestep length or the units set on any other slot or column. The method uses a table lookup to select the coefficient and exponent value (not interpolation). It uses the coefficient and exponent from the row corresponding to the largest flow value for the month less than or equal to the reservoir Inflow.

I/O: Required Input

Links: No

Sed Data

Type: Table Slot

Units: None, None, Length, None, None, Sed Density

Description: Parameter values used for converting sediment load in tons to an equivalent volume

I/O: Required Input

Links: No

Steps Carried Out by the Total Vol Sed (Post2000) Method

The Total Vol Sed (Post2000) method carries out the following steps:

Calculate the daily inflow volume in cfs-day

IF isMonthly

For a 1 Month timestep the timestep inflow volume must be divided by the number of days in the month to get the daily inflow volume.

END IF

Get the Bed Load Coefficients

Get the Bed Load Coefficients (bedLoadSlope and bedLoadIntcpt) from the Bed Load Coeffs table slot, corresponding to reservoir Inflow. Use the row for the largest Inflow value less than or equal to the reservoir Inflow.

Calculate Bed Load in tons

Get the Seasonal Inflow Coefficients

Get the Seasonal Inflow Coefficients (sedLoadCoeff, and sedLoadExpon). Use the row for the largest Inflow value less than or equal to the reservoir Inflow.

Calculate the total sediment

1. Calculate total sediment load in tons.

IF isMonthly

END IF

Calculate the elevation of the permanent sediment pool

2. Calculate the elevation of the permanent sediment pool

This calculation will be different for Cochiti than for Abiquiu and Jemez. For Cochiti the calculation depends on whether the Time Varying Elevation Volume method has been selected for the Sediment category. The previous Accumulated Perm Sediment will be added to the sediment content when calculating the permPoolElev for Cochiti unless the Time Varying Elevation Volume method is selected and the current timestep matches the date in a column header of the Elevation Volume Table Time Varying slot (isElevVolModDate = TRUE).

IF Reservoir = Abiquiu OR Reservoir = Jemez

ELSE IF Reservoir = Cochiti

IF (Time Varying Elevation Volume is selected) AND (isElevVolModDate = TRUE)

ELSE

END IF

END IF

Calculate the sediment above the perm pool

Calculate the sediment above the perm pool (a percent) and the volume lost to sedimentation at this timestep.

IF

ELSE

END IF

Calculate the accumulated permanent sediment

Calculate the accumulated permanent sediment as the previous accumulated sediment plus the volume lost to sedimentation at the current timestep, unless the Time Varying Elevation Volume method is selected and it is an ElevVol Mod Date.

IF (Time Varying Elevation Volume is selected) AND (isElevVolModDate = TRUE)

ELSE (the typical case)

END IF

Set all final values in the EST SED Deposition table series slot

Set all final values in the Est Sed Deposition table series slot.

Column Header (with unit type | Value |
---|---|

Perm Pool Elev (Length) | permPoolElev |

Bed Load (Mass) | bedLoad |

Total Load (Mass) | totalSedLoad |

% Sed abv Perm pool (None) | sedAbovePermPool |

Total Pool Sediment (Volume) | volumeLost |

Accumulated Perm Sediment (Volume) | accumPermSed |

Set the Accumulated Permanent Sediment

Set the slot Accumulated Permanent Sediment = accumPermSed

Stream Gage Account Slot Inflow

The stream gage has three Rio Grande specific methods. See the following topics:

Reconcile Rio Grande

This method computes the total accounting Slot Inflow to reconcile the physical and accounting flows based on the water type of the accounts. Accounts with water type “SanJuan” have their Slot Inflows set to 0.0cfs. The remaining total reconciliation water is then proportioned to the Slot Inflow on accounts with the RioGrande water type.

The logic is as follows.

Get a list of all the Inflow slots on accounts with water type RioGrande. and register each as a dependency

RioGrandeInflowSUM = Sum of RioGrande Inflows

Get a list of all the Slot Inflow slots on accounts with water type RioGrande.

Get a list of all the Slot Inflow slots on accounts with water type SanJuan.

Get a list of all the Outflow slots on accounts with water type SanJuan and register each as a dependency

SanJuanOutflowSUM = Sum of SanJuan Outflows

Get the StreamGage.Gage Outflow

If the RioGrandeInflowSUM is zero, then divide any Slot Inflows equally to all Rio Grande accounts.

Otherwise, for each account with water type RioGrande:

Set Slot Inflows on accounts with water type SanJuan to 0.0.

All San Juan Chama

All RioGrande account Slot Inflows are set to 0.0. The Gage Outflow is then divided evenly by the number of SanJuan accounts and set on each SanJuan Slot Inflow.

All Rio Grande

All SanJuan account Slot Inflows are set to 0.0. The RioGrande Slot Inflow is divided evenly by the number of RioGrande accounts and set on each accounts Slot Inflow slot.

Revised: 06/03/2019