Object-level accounting methods (OLAMs) Object-level accounting methods are used to allocate physical gains, losses, and local inflows on an object to accounting slots on that object. In addition, they can be used to reconcile the physical and accounting system. |
Compiled accounting methods Compiled accounting methods are hard-coded object-level accounting methods. These methods were created by CADSWES and are available in a library. They represent either commonly used functionality or methods that are too complex to represent as user-defined methods. |
Object / Category | Method | Description |
---|---|---|
Agg Diversion Account Reconciliation | No Method | No action - never executed |
Bifurcation Account Slot Inflow | No Method | No action - never executed |
Zero Slot Inflows | Sets all Slot Inflows to 0.0. See “Zero Slot Inflows” for details. | |
Confluence Account Slot Inflow | No Method | No action - never executed |
Zero Slot Inflows | Sets all Slot Inflows to 0.0 | |
Rio Grande Inflow 2 | Confluence^RioGrande.Slot Inflow is set equal to the Inflow 2. All other accounts’ Slot Inflow set to 0.0 | |
Sidewater Inflow 2 | Distribute Confluence.Inflow 2 to the Floriston Rate and Undes account Slot Inflow. | |
Control Point Account Slot Inflow | No Method | No action - never executed |
Zero Slot Inflows | Sets all Slot Inflows to 0.0 | |
Copy Slot to Slot Inflows | On the specified account, set the Slot Inflow equal to the Local Inflow. Set all other Slot Inflows to 0.0. See “Copy Slot to Slot Inflows” for details. | |
Distribution Canal Account Slot Inflow | No Method | No action - never executed |
Zero Slot Inflows | Sets all Slot Inflows to 0.0 | |
Diversion Object Account Slot Inflow | No Method | No action - never executed |
Zero Slot Inflows | Sets all Slot Inflows to 0.0 | |
Inline Pump Account Slot Inflow | No Method | No action - never executed |
Zero Slot Inflows | Sets all Slot Inflows to 0.0 | |
Pipe Junction Account Slot Inflow | No Method | No action - never executed |
Zero Slot Inflows | Sets all Slot Inflows to 0.0 | |
Pipeline Account Slot Inflow | No Method | No action - never executed |
Zero Slot Inflows | Sets all Slot Inflows to 0.0 | |
Reach Account Slot Inflow | No Method | No action - never executed |
Zero Slot Inflows | Sets all Slot Inflows to 0.0. | |
Reconcile Rio Grande Outflow | See “Reconcile Rio Grande Outflow” for details. | |
Rio Grande Local Inflow | Reach^RioGrande.Slot Inflow is set equal to the Reach.Local Inflow. All other accounts’ Slot Inflows are set to 0.0. See “Rio Grande Local Inflow” for details. | |
Provo River Local Inflow | Reach^ProvoRiver.Slot Inflow is set equal to the Local Inflow. | |
NIC Local Inflow | Reach^NIC.Slot Inflow is set equal to the Local Inflow. | |
Copy Slot to Slot Inflows | On the specified account, set the Slot Inflow equal to the Local Inflow. Set all other Slot Inflows to 0.0. See “Copy Slot to Slot Inflows” for details. | |
Reach Account Gain Loss | No Method | No action - never executed |
San Juan Gain Loss | Sets Gain Loss on accounts with water types Rio Grande and San Juan. Many accounting slots are registered as dependencies. | |
Reservoir Account Slot Inflow Reservoirs: • Storage • Level Power • Sloped Power • Pumped Storage | No Method | No action - never executed |
Zero Slot Inflows | Sets all Slot Inflows to 0.0 | |
Heron Inflow | Sets Slot Inflow on accounts with water types Rio Grande and San Juan. Many accounting slots are registered as dependencies. See “Heron Inflow” for details. | |
Pooled Account Slot Inflow | Pooled.SlotInflow is set equal to the object’s Hydrologic Inflow Net | |
Donner Inflow | Basin-specific | |
Prosser Uncomm | Basin-specific | |
Copy Slot to Slot Inflows | On the specified account, set the Slot Inflow equal to the Hydrologic Inflow. Set all other Slot Inflows to 0.0. See “Copy Slot to Slot Inflows” for details. | |
Reservoir Account Gain Loss Reservoirs: • Storage • Level Power • Sloped Power • Pumped Storage | No Method | No action - never executed |
Heron Gain Loss Calculation | Sets Gain Loss on accounts with water types Rio Grande and San Juan. Many accounting slots are registered as dependencies. See “Reservoir Account Gain Loss” for details. | |
El Vado Loss Calculation | ||
Nambe Falls Loss Calculation | ||
Elephant Butte Loss Calculation | ||
Elephant Butte Loss with RG Compact | Sets Gain Loss on accounts with water types Rio Grande and San Juan Includes logic for the RG Compact. Many accounting slots are registered as dependencies. See “Elephant Butte and El Vado Gain Loss” for details. | |
Abiquiu Loss Calculation | Sets Gain Loss on accounts with water types Rio Grande and San Juan. Many accounting slots are registered as dependencies. See “Abiquiu, Cochiti, and Jemez Gain Loss” for details. | |
Jemez Loss Calculation | ||
Cochiti Loss Calculation | ||
Reservoir Account Reconciliation | No Method | No action - never executed |
Water User Account Reconciliation | No Method | No action |
Stream Gage Account Slot Inflow | No Method | No action - never executed |
Zero Slot Inflows | Sets all Slot Inflows to 0.0 | |
Reconcile Rio Grande Outflow | See “Reconcile Rio Grande” for details. | |
All Rio Grande | Sets Slot Inflow on accounts with water types Rio Grande | |
All San Juan Chama | Sets Slot Inflow on accounts with water types San Juan |
Object | Local Inflow Category | Possible Methods | local Inflow Slot |
---|---|---|---|
Control Point | Local Inflow | Input Local Inflow | Local Inflow |
Reach | Local Inflow and Solution Direction | Specify Local Inflow, Solve Inflow or Outflow Specify Local Inflow, Solve Outflow Solve Inflow, Outflow or Local Inflow Contingent Local Inflow or Solve Outflow | Local Inflow |
Reservoirs: Storage, Level Power | hydrologicInflow CalculationCategory | solveHydrologicInflow inputHydrologicInflow Hydrologic Inflow and Loss | Hydrologic Inflow |
Reservoirs: Sloped Power, Pumped Storage | hydrologicInflow CalculationCategory | inputHydrologicInflow | Hydrologic Inflow |
User-defined accounting methods User-defined accounting methods are object-level accounting methods (OLAMs) created by the user in the RiverWare Policy Language. |
In DeepLake, the Hydrologic Inflow is shared equally amongst three accounts in a Deep Lake: A, B, and C. The Storage Account Slot Inflow method would be the following: • DeepLake ^ “A.Slot Inflow”[] = DeepLake.“Hydrologic Inflow”[] / 3 • DeepLake ^ “B.Slot Inflow”[] = DeepLake.“Hydrologic Inflow”[] / 3 • DeepLake ^ “C.Slot Inflow”[] = DeepLake.“Hydrologic Inflow”[] / 3 |
Policy Group / Category | Object | Accounts |
---|---|---|
Agg Diversion Account Reconciliation | Aggregate Diversion | Diversion |
Bifurcation Account Slot Inflow | Bifurcation | Passthrough |
Confluence Account Slot Inflow | Confluence | Passthrough |
Control Point Account Slot Inflow | Control Point | Passthrough |
Distribution Canal Account Slot Inflow | Distribution Canal | Passthrough |
Diversion Object Account Slot Inflow | Diversion Object | Passthrough |
Inline Pump Account Slot Inflow | Inline Pump | Passthrough |
Pipe Junction Account Slot Inflow | Pipe Junction | Passthrough |
Pipeline Account Slot Inflow | Pipeline | Passthrough |
Reach Account Gain Loss | Reach | Passthrough |
Reach Account Slot Inflow | Reach | Passthrough |
Reservoir Account Gain Loss | Storage Reservoir Level Power Reservoir Pumped Storage Reservoir Sloped Power Reservoir | Storage and/or Passthrough |
Reservoir Account Reconciliation | Storage Reservoir Level Power Reservoir Pumped Storage Reservoir Sloped Power Reservoir | Storage and/or Passthrough |
Reservoir Account Slot Inflow | Storage Reservoir Level Power Reservoir Pumped Storage Reservoir Sloped Power Reservoir | Storage and/or Passthrough |
Stream Gage Account Slot Inflow | Gage | Passthrough |
Water User Account Reconciliation | Water User | Diversion |
Following is a reach Pass Through Gain Loss method that makes use of the “ThisObject” syntax. It would be useful on this basin because each reach has two accounts, Fish and Farmers. The Fish account gets charged with all loss, Farmers get none. Each reach in the model could then use this method. ThisObject ^ “Fish.Gain Loss”[] = ThisObject. “Total GainLoss”[] ThisObject ^ “Farmers.Gain Loss”[] = 0 [“acre-feet”] Note: Gain Loss in the accounting system is a volume. |
Following is an example setting all of the account’s Slot Inflow to zero using a ForEach loop (note, this is just a sample method, this functionality can be accomplished much more easily using the compiled Zero Slot Inflows method, as follows. See “Zero Slot Inflows”. FOREACH (STRING account IN AccountNamesByAccountType(ThisObject, “ALL”)) ThisObject^(account CONCAT “.Slot Inflow”)[] = 0 [“cfs”] ENDFOREACH Note: See “Creating, Editing, and Viewing RPL Sets” in RiverWare Policy Language (RPL) for additional information on RPL and its uses. |
Execution Time | Description | Dependencies |
---|---|---|
Never | The method is never executed. This is only available for the default no-action method for each category. | None |
Beg. of Run | At the beginning of the run, the method is executed once per timestep. | None |
Beg. of Timestep Once | The method is executed once before each timestep's simulation. | None |
Beg. of Timestep | The method is executed before each timestep's simulation and if dependent slots change. For this execution time, the method registers both simulation and accounting slots as dependencies. That is, if a value in a dependent slot changes, the method is put on the accounting queue to resolve. Note: This could have performance implications if slot dependencies cause methods to re-fire. | Accounting and Simulation Slots |
After Simulation | The method is executed after each timestep's simulation is complete and as accounting dependencies change. Note: This is the default for compiled methods and the only execution time in releases prior to RiverWare 5.1. Technically, the method is executed as part of the accounting beginning of timestep which occurs after all rules have executed and all dispatching is complete. Each method registers accounting slot dependencies when executed. Therefore, if a value in a dependent accounting slot changes, then the method will re-execute. | Accounting Slots only |